android学习记录(三)

注:该系列博客为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,
然后转换成相应的服务对象。以下介绍系统相应的服务。
=================================================================
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                        电话服务
==================================================================


27.adapter.notifyDataSetChanged()方法的主要作用其实就是当ListView中的数据改变时,可以达到刷新列表的功能


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都会进入同一个应用中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值