注:该系列博客为bz学习和使用Android开发所积累的经验和要注意的点,起到提示和笔记的作用,会持续更新(每积累十个就会上传上来)
21.对字符串进行非空判断的时候,可以使用TextUtils.isEmpty()方法,这是一个非常好用的方法,它可以一次性进行
两种空值得的判断。当字符串等于null或者等于空字符串的时候,这个方法都会返回true
22.EditText.setSelection()方法是将光标移动到文本的末尾位置以便于继续输入
23.EditText布局中可以使用android:inputType=""中的一些选择来确定这个输入框中要输入的内容的属性,比如使用
android:inputType="textPassword",这样就是设定这个输入框中要输入的是密码,所以当用户在这个输入框输入
密码的时候,就不会直接显示密码,而是比较常见的黑点,这样可以提高用户的使用体验,而且给用户一种安全感
24.用代码创建dialog
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
dialogBuilder.setTitle("Warning");//设置标题
dialogBuilder.setMessage("You are forced to be offline. Please try to login again.");//设置提示内容
dialogBuilder.setCancelable(false);//当为false时不能通过其他方式结束dialog
dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
25.升级数据库的最佳写法,大致是:在onUpgrade()方法中使用没有break的switch语句,其中case用来判断
旧的版本号,详见《第一行代码》P2
26.关于系统服务:
getSystemService(String name)是Android很重要的一个API,根据NAME来取得对应的Object,
然后转换成相应的服务对象。以下介绍系统相应的服务。
27.adapter.notifyDataSetChanged()方法的主要作用其实就是当ListView中的数据改变时,可以达到刷新列表的功能
=================================================================
name 返回的对象 说明
WINDOW_SERVICE WindowManager 管理打开的窗口程序
LAYOUT_INFLATER_SERVICE LayoutInflater 取得xml里定义的view
ACTIVITY_SERVICE ActivityManager 管理应用程序的系统状态
POWER_SERVICE PowerManger 电源的服务
ALARM_SERVICE AlarmManager 闹钟的服务
NOTIFICATION_SERVICE NotificationManager 状态栏的服务
KEYGUARD_SERVICE KeyguardManager 键盘锁的服务
LOCATION_SERVICE LocationManager 位置的服务,如GPS
SEARCH_SERVICE SearchManager 搜索的服务
VIBRATOR_SERVICE Vibrator 手机震动的服务
CONNECTIVITY_SERVICE Connectivity 网络连接的服务
WIFI_SERVICE WifiManager Wi-Fi服务
TELEPHONY_SERVICE TeleponyManager 电话服务
==================================================================
28.注意关闭进度对话框使用的方法是dismiss()
29.在非UI线程中如果有的操作牵扯到了UI操作,可以使用runOnUiThread()方法从子线程切换到主线程
30.在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。
在Android中Activity的启动模式决定了Activity的启动运行方式。
Android总Activity的启动模式分为四种:
Activity启动模式设置:
<activity android:name=".MainActivity" android:launchMode="standard" />
Activity的四种启动模式:
1. standard
模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。
standard是系统默认的启动模式。
2. singleTop
如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶
(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。
3. singleTask
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,
因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
4. singleInstance
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式
的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,
其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。