
android studio编程2
文章平均质量分 90
介绍Android Studio的使用及编程方法
棉猴
这个作者很懒,什么都没留下…
展开
-
Android Studio中通过SQLiteOpenHelper操作数据库
在《Android Studio中通过SQLiteDatabase操作数据库》一文中提到了使用SQLiteDatabase类操作数据库的方法。使用该类操作数据库,在创建数据库和更新数据库时,需要考虑到多种情况,例如需要考虑当前数据库是否存在,当前数据库是否已经打开,当前数据库是否有写操作权限等。通过编程实现以上情况的判断是非常繁琐的。使用SQLiteOpenHelper类来创建和更新数据库时,这些...原创 2018-10-10 09:02:24 · 15085 阅读 · 0 评论 -
从零开始学android编程之网格布局管理器(2-2)
2 指定单个组件在网格中的位置可以通过指定组件的android:layout_column属性和android:layout_row属性来指定该组件在网格中的行数和列数。与android:columnCount属性和android:rowCount属性类似,android:layout_column属性和android:layout_row属性也与android:orietation属性有关。原创 2017-12-27 23:24:21 · 835 阅读 · 0 评论 -
从零开始学android编程之网格布局管理器(2-1)
网格布局管理器用GridLayout类来表示。在《从零开始学android编程之表格布局管理器》中提到的TableLayout一般产生的表格外形是标准的方框,而GridLayout类产生的网格可以是不标准的。1 设置网格的行数和列数在《从零开始学android编程之线性布局管理器》中提到的activity_linear.xml文件中使用表格布局管理器GridLayout,代码如下Lin原创 2017-12-27 23:21:35 · 860 阅读 · 0 评论 -
从零开始学android编程之表格布局管理器(2-2)
3 自动匹配屏幕宽度从图1和图2中可以看到,创建的表格布局管理器对应的表格并没有铺满整个屏幕。可以通过设置表格布局管理器的android:stretchColumns属性使得表格自动匹配屏幕宽度。代码如下<TableLayout.........android:stretchColumns="0">.............以上代码的作用是将表格布局管理器表格的第1列设置为可拉原创 2017-12-21 21:40:57 · 434 阅读 · 0 评论 -
从零开始学android编程之表格布局管理器(2-1)
表格布局管理器用TableLayout类表示,该类派生自LinearLayout类,所以TableLayout类也具有LinearLayout类的方法和属性。线性布局管理器LinearLayout将在其中的“组件群”进行横向或者纵向的一字排列。而表格布局管理器TableLayout主要将“组件群”进行表格式的排列,即将“组件群”排列成指定行数和指定列数。1 在表格布局管理器中插入行在表原创 2017-12-21 21:37:09 · 521 阅读 · 0 评论 -
从零开始学android编程之线性布局管理器(2-2)
4 设置组件内容的对齐方式可以通过单个组件的android.gravity设置组件内容的对齐方式。<LinearLayout.......>.........<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="lef原创 2017-12-21 21:12:36 · 265 阅读 · 0 评论 -
从零开始学android编程之线性布局管理器(2-1)
线性布局管理器用LinearLayout类来表示。线性布局管理器会将组件一个一个排列起来。线性布局管理器中的组件不会自动换行,如果组件排列超出了Activity的范围,超出范围的组件将不会被显示。1 组件排列方向通过线性布局管理器的属性android:orientation可以控制组件排列的方向(横向或者纵向)。在Android Studio中创建创建一个新的项目,由于该项目默认的布局原创 2017-12-21 21:01:53 · 582 阅读 · 0 评论 -
安卓定时器类Timer与消息处理类Handler
安卓串口编程中,需要循环判断串口中是否有数据到来,如果有数据到来,则接收数据。可以通过定时器类Timer和消息处理类Handler来实现以上功能。1 定时器类TimerTimer表示定时器类,该类可以为后台进程安排要执行的任务。每个Timer对象相对应一个后台线程,用于顺序地执行任务。1.1 创建定时器类对象在onCreate()方法中通过new创建Timer类的对象。Time原创 2017-11-22 22:20:23 · 1212 阅读 · 0 评论 -
安卓编程之获取系统当前时间
安卓系统的当前时间的表示方式主要分为两种,一种是用一系列单独的整数表示年、月、日、时、分、秒;另一种是用字符串的方式表示,该字符串中包含了年、月、日、时、分、秒。1 获取一系列单独的表示日期和时间的整数通过Calendar类和Time类可获取单独表示日期和时间的整数。1.1 通过Calendar类获取Calendar类是一个抽象类,用于获取系统日期和时间。该类的全称是java.ut原创 2017-10-11 22:15:04 · 4914 阅读 · 0 评论 -
AlertDialog中默认按键不关闭对话框功能的实现
可以通过AlertDialog.Builder来操作AlertDialog。通过AlertDialog.Builder类的setNagtiveButton()、setNeutralButton()和setPositiveButton()方法设置对话框的左、中和右键,如图1所示。图1 AlertDialog类的三个按键可以通过以上三个方法设置按键显示的内容和点击响应。但是通过这种方法设原创 2017-10-19 22:31:32 · 1995 阅读 · 1 评论 -
安卓系统中对SD卡的操作
安卓系统中,对SD卡的操作主要包括判断SD卡是否存在、获取SD卡路径、获取SD卡存储信息以及对SD卡进行读写等。1 判断SD卡是否存在通过Environment类实现对SD卡信息的获取。Environment类的全称是android.os.Environment,通过该类可以访问系统的环境变量。通过该类的getExternalStorageState()方法获取外部存储设备的当前状态,原创 2017-10-10 21:54:48 · 857 阅读 · 0 评论 -
安卓通过SurfaceView类实现手写功能(下)
可以通过SurfaceView类的派生类来实现触屏(手写)动作的处理。也可以直接重写MainActivity类的onTouchEvent()方法来处理手写动作。当MainActivity下的所有视图(控件)都没有处理触屏(手写)动作时,该方法将会被调用。原创 2017-08-09 10:26:38 · 1068 阅读 · 0 评论 -
安卓通过SurfaceView类实现手写功能(中)
首先,为MainActivity定义SurfaceView类的对象private SurfaceView surfViewDraw=null;之后在MainActivity类的onCreate()方法中将该对象与控件关联surfViewDraw=(SurfaceView)findViewById(R.id.surfVDraw);原创 2017-08-09 10:23:20 · 715 阅读 · 0 评论 -
安卓通过SurfaceView类实现手写功能(上)
SurfaceView类的全称是android.view.SurfaceView,派生自andriod.view.View。SurfaceView类可以看成是“自带独立Surface的View”,因此该类具有View的显示和接收输入的功能,还可以通过Surface实现绘制的功能。通过SurfaceView类实现手写功能,实际上就是在其Surface上进行绘制,之后再显示出来。原创 2017-08-09 10:17:54 · 1820 阅读 · 0 评论 -
通过流实现文件读写的方法(下)
在使用字符流的write()或者read()方法时,都会导致从底层输入输出流读取或者写入一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层输入输出流中读取更多的字节,使其超过满足当前读取操作所需的字节。为了达到最高效率,可以使用缓冲流方式读写文件。缓冲流方式的类是BufferedReader类和BufferedWriter类。如图所示。原创 2017-05-09 22:04:28 · 1877 阅读 · 0 评论 -
从零开始学android编程之修改编码方式
使用Eclipse进行android编程,导入外部项目时,源文件中包含的汉字可能会变成乱码。在Eclipse中使用Toast显示提示信息时,也会出现这种情况。汉字出现乱码的原因是编码方式不一致,需要通过Eclipse修改编码方式。通过Eclipse修改编码方式的方法主要有三种:第一种是修改java文件的编码方式;第二种是修改工作区的编码方式;第三种是修改整个项目的编码方式。1 修改java原创 2017-12-30 10:54:13 · 720 阅读 · 0 评论 -
从零开始学android编程之相对布局管理器
相对布局管理器用RelativeLayout表示。相对布局管理器可以通过指定控件的相对位置属性,将其放置到活动的任何位置。控件的相对位置属性包括两类:一类是相对活动的位置属性,另一类是相对其它控件的位置属性。1 相对活动的属性相对活动的属性包括位置属性和对齐属性。相对活动的属性值均为true或者false。1.1 相对活动的位置属性相对活动的位置属性包括了layout_center原创 2018-01-24 18:43:26 · 366 阅读 · 0 评论 -
从零开始学android编程之Toast提示信息框
Toast类可以在程序界面上显示一个简单的提示信息,这个提示信息框用于向用户生成简单的提示信息。1 创建包含信息的提示框通过Toast类的静态方法makeText()创建信息提示框,该提示框中包含了指定的信息。该方法的格式为public static Toast makeText(Context context, CharSequence text, int duration);其原创 2018-01-24 18:52:02 · 836 阅读 · 0 评论 -
Android Studio中AndroidManifest.xml文件中application标签
AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 AndroidManifest.xml中的applicatoin标签节点包含了对应用程序的声明。该节点中包含有应用程序属性和子节点。1 属性1.1 a...原创 2018-10-10 08:52:22 · 11443 阅读 · 1 评论 -
Android Studio在运行时显示Please Select Android SDK的解决方法
1 问题提出在Android Studio中点击“Run”按键,程序没有正常运行,而是弹出“Edit configuration”对话框,在对话框底部的错误信息中,显示“Please Select Android SDK”,如图1所示。 图1 显示错误信息2 问题分析出现该问题的主要原因是Android Studio程序之前异常关闭,导致配置文件损坏,需要在线更新SDK才能...原创 2018-09-29 13:59:18 · 34436 阅读 · 45 评论 -
Eclipse中显示INSTALL_FAILED_UPDATE_INCOMPATIBLE
1 问题提出在Eclipse中,Run程序并将程序拷贝安装到Android系统时,Console显示“Installation error:INSTALL_FAILED_UPDATE_INCOMPATIBLE”,如图1所示。重启Eclipse和Android系统都无法解决。 图1 错误信息2 问题分析主要原因可能是在Android系统上调试程序时,会反复安装卸载程序。如果未...原创 2018-09-14 16:14:31 · 450 阅读 · 0 评论 -
Eclipse中Android SDK Content Loader 0%的解决方法
在启动Eclipse时,Android SDK Content Loader有时一直卡在0%,如图1所示。 图1 Android SDK Content Loader进度解决方法是,首先关闭Eclipse,如果无法关闭,则使用任务管理器强行关闭。之后进入“C:\用户\用户名\.android”文件夹中,其中“用户名”为系统用户名。删除该文件夹中的cache文件夹和ddms.cfg文...原创 2018-09-14 16:12:29 · 1053 阅读 · 0 评论 -
Android Studio中通过gradle添加libs文件夹
1 gradle简介Android Studio中的gradle是一个构建工具,它是基于Groovy语言的。在Android Studio中,每个工程对应一个gradle,每个模块也对应一个gradle。2 通过修改gradle添加libs文件夹libs文件夹用于保存项目中所需的jar、so等库文件。Android Studio项目中如果不存在该文件夹,可以通过修改build.grad...原创 2018-08-31 15:18:54 · 8721 阅读 · 0 评论 -
Android Studio导入程序时显示can’t start git的处理方法
在打开Android Studio时,有时会显示“Can’t start Git:git.exe”,如图1所示。 图1 无法启动Git1 Git简介Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。2 下载安装Git出现以上错误信息的原因是没有安装Git。下载Git.exe后安装,指定其安装的目录,如图2所示。 图2 指定Git的安...原创 2018-08-01 08:41:18 · 5950 阅读 · 0 评论 -
Android Studio导入程序时显示Connection time out的处理方法
在使用Android Studio导入已存在的程序时,有时会在“Message”窗口中显示“Connection time out:connect.”,如图1所示。图1 错误信息产生该错误信息的原因一般是gradle不匹配。1 Gradle1.1 Gradle简介Gradle是一种项目构建工具,基于Groovy语言,面向Andorid应用为主。它抛弃了基于XML的各种繁琐的...原创 2018-08-01 08:37:17 · 5159 阅读 · 0 评论 -
Android Studio通过style和layer-list实现自定义进度条
1 style1.1 sytles.xml简介style表示样式,Android的样式在“res/values/styles.xml”中定义。可以在Android Studio中对该文件进行编辑。以下为Android Studio自动生成的styles.xml文件的内容。<resources> <!-- Base application theme. --> ...原创 2018-05-31 16:27:07 · 2174 阅读 · 0 评论 -
Android Studio中通过SQLiteDatabase类操作数据库
SQLite是一款轻型的数据库,主要用在嵌入式系统,它占用的资源非常低。SQLite不依赖第三方软件,也不需要安装。数据库中的信息都包含在一个文件中,这个文件可以自由地复制到其它目录或其它机器上。在Android Studio中,SQLiteDatabase类表示数据库类。通过该类可以实现对数据库中数据的添加、删除、查询和修改等功能。1 打开/创建数据库文件通过SQLiteDatabase类的静态...原创 2018-05-31 16:13:20 · 15946 阅读 · 2 评论 -
Android Studio中使用进度条控件
安卓系统中的进度条主要有圆形和水平两种,安卓系统默认进度条是圆形进度条,如图1所示。 图1 圆形进度条与水平进度条使用ProgressBar类表示进度条。1 圆形进度条1.1 创建圆形进度条圆形进度条主要包括大、正常和小三种类型,可以通过style属性进行设置。<ProgressBar android:layout_width="match_parent" android:l...原创 2018-05-24 22:56:06 · 21311 阅读 · 0 评论 -
Android Studio调试时无法watch局部变量值
在Android Studio中下断点调试时,可以在“Watches”窗口中查看变量的。但是当要查看的变量是局部变量时,String path = getFilesDir().toString();在“Watches”窗口中无法查看path的值,如图1所示。 图1 无法显示局部变量的值可以通过修改gradle文件来实现显示局部变量值的功能。1 gradle文件简介Android Studio采用G...原创 2018-05-24 22:49:03 · 7557 阅读 · 0 评论 -
Android Studio中创建Selector文件的方法
Selector文件的格式是xml,通过该文件用来改变ListView和Button控件的背景。在Android Studio中可以使用两种方法来添加Selector文件,一种是在“Android”模式下,另外一种是在“Project”模式下。1 “Android”模式下创建Selector文件在Android Studio主界面中,以“Android”模式显示项目文件,如图1所示。 图1 And...原创 2018-05-21 10:50:36 · 9260 阅读 · 2 评论 -
Android实现程序开机自启动
可以通过Android系统中的广播机制实现开机自启动。广播(Broadcast)是Android系统的四大组件之一,通过该机制可以实现不同应用程序之间的通信。1 开机自启动基本原理当Android系统开机后,系统会发送一个“已开机”的广播。需要开机自启动的程序接收这个广播,然后启动自己的活动即可。如图1所示。图1 程序自启动原理2自定义广播接收器在需要自启动的程序中,需要创建广播接收器来接收广...原创 2018-05-21 10:44:50 · 27242 阅读 · 14 评论 -
Android Studio中修改APP图标和APP名称
Android Studio生成的APP默认图标是经典的机器人图标。可以通过Android Studio实现APP图标和名称的修改。1 修改APP图标在程序对应的AndroidMenifest.xml中指定了该APP的图标。<application> ...... android:icon="@mipmap/ic_launcher"</application>...原创 2018-05-21 10:36:46 · 64951 阅读 · 4 评论 -
通过流实现文件读写的方法(中)
在“1.2.2”中提到,字符流主要由Reader和Writer作为基类。我们将使用这两个类的派生类InputStreamReader和OutputStreamWriter实现文件数据的读写。字符流与字节流的关系如图所示。原创 2017-05-09 22:01:11 · 1520 阅读 · 0 评论 -
通过流实现文件读写的方法(上)
可以通过如下三种方式对文件中的数据进行读取和写入:字节流方式、字符流方式以及缓冲区方式。原创 2017-05-09 21:56:40 · 3327 阅读 · 0 评论 -
Eclipse中“Your project contains error(s)”处理方法
Eclipse可以自动识别程序中存在的语法错误,当项目中某个文件中存在错误时,会在界面左侧的“Package Explorer”的项目包浏览中显示有错误存在,并且在相应文件的错误代码处也有错误提示,如图1所示。原创 2017-05-17 06:34:31 · 10214 阅读 · 0 评论 -
基于Java语言的安卓编程之十八Spinner控件
前一天学习了提高getView()效率的方法以及点击ListView子项显示指定内容的方法。通过getView()的convertView参数可以实现“旧”视图的使用而不必每次都要重新创建新视图,因而提高了该方法的效率。通过为ListView控件添加点击监视器的方法及Toast类实现了指定内容的显示。今天将学习Spinner控件。Spinner控件用来显示一个下拉列表,用户可以在该列表中选择一原创 2017-03-27 20:44:28 · 979 阅读 · 0 评论 -
基于Java语言的安卓程序编写之七TextView控件
安卓程序中的TextView控件用于在界面上显示一段文本细信息。今天,我们将一起学习对TextView控件属性的设置,这些设置控件的可视化编辑器设置。但是,可视化编辑器不利于了解界面背后的实现原理,因此,我们将通过修改XML文件来实现TextView控件属性的修改,这样就可以对控件有了更深层次的理解。在Eclipse中创建一个名为“TextView_Test”的安卓应用程序项目。打开“Text原创 2017-03-06 21:46:21 · 1332 阅读 · 0 评论 -
基于Java语言的安卓编程之十图像按键及按键图像切换
在前一天中我们学习了通过xml文件和编程混合的方式设置UI。对于界面布局组件,可以通过xml文件实现,而对于按键和图像视图等控件,可以通过编程直接实现。采用混合方式设置UI,既减少了代码又提高了程序的灵活性。今天,我们一起学习在图像按键的显示以及图像按键的切换。以上功能都可以通过xml文件来实现。1 图像按键可以通过两种方法实现在按键上显示图像的功能。一种方法是使用Button控件,另原创 2017-03-06 21:38:06 · 602 阅读 · 0 评论 -
基于Java语言的安卓编程之九混合方式实现UI设置
在“安卓编程学习第八天”中,我们学习了通过编程实现TextView控件和Button控件的添加及响应,通过创建并设置线性布局管理器可以将添加的控件加入到界面布局中,还可以通过编程实现控件属性的设置。但是通过单一的编程实现UI设置导致代码比较庞大,而通过xml界面布局文件实现UI设置又显得不太灵活。因此,今天我们将学习使用编程和xml界面布局文件混合的方式实现UI设置。要实现的功能是通过按键实现原创 2017-03-06 21:34:00 · 458 阅读 · 0 评论 -
基于Java语言的安卓编程之十五自动完成文本框
前一天学习了学习了表示控件尺寸时所使用的px、pt、dp和sp等单位。其中px表示像素,pt表示点,dp表示与密度无关的像素,sp表示放大因子像素。将pt、dp和sp转换px时,需要用到DisplayMetrics类的xdpi、density和scaleDensity等字段。今天将学习自动完成文本框(AutoCompleteTextView)控件。该控件派生自EditText控件。当用户在自动原创 2017-03-20 06:44:28 · 535 阅读 · 0 评论