1.Android布局,控件
2.点击事件:
View:onClickListener
3.对话框:
Dialog:
new AlertDialog.Builder(Context)
.setTitle(标题)
.setIcon(图标)
.setMessage(消息)
//.setView(View)
.setPositiveButton(确定,listener)
.setNagativeButton(取消,listener)
.show();
4.进度条对话框:
ProgressDialog:
ProgressDialog dialog = ProgressDialog.show(Context,message);
5.Activity:与用户进行交互
绑定View视图:setContentView(布局资源)
6.启动Activity,传值:
隐式启动:startActivity(new Intent(action:目标Activity的别名))
显示启动:startActivity(new Intent(当前Acitivty对象,目标Activity.class))
通过Intent的putExtra(key,value)传值,value可以是所有数据类型
如果value是对象,需要该类实现序列化接口Serializable
Intent.putExtras(Bundle):Bundle作用类似于map来存储数据
7.Activity的声明周期:
创建 重新启动 启动 获得焦点 暂停 停止 销毁
onCreate、onRestart、onStart、onResume、onPause、onStop、onDestroy
A:onCreate、onStart、onResume
A-B:onPause(A)、onCreate(B)、onStart(B)、onResume(B)、onStop(A)
B-A(B返回到A):onPause(B)、onRestat(A)、onStart(A)、onResume(A)、onStop(B)、onDestroy(B)
在A页面按home键:onPause、onStop
8.Activity四种加载模式:
标准模式:Standard
栈顶模式:SingleTop
单个任务模式:SingleTask
当个实例模式:SingleInstance(在一个新的任务栈中)
9.四种状态:运行、暂停、停止、销毁
10.ListView:列表控件,能以列表的方式显示数据(数据一定是集合)
先获取ListView;
为ListView设置Adapter:Adapter需要自己去写
Adapter优化:使用ViewHolder,来减少LayoutInflater解析布局资源,减少findViewById的查找
11.GridView:默认情况和ListView效果一致,可以设置多列显示,ListView只能单列显示
numsColum来设置列数
12.解析,网络请求
xml,json
HttpURLconnection
13.异步加载数据:因为在UI线程中不能进行耗时操作和网络请求。
Hanlder:Handler、Message、MessageQueue、Looper
原理:进行线程切换,在子线程中进行耗时或者网络请求操作,完毕后切换到UI线程进行UI更新。
在主线程中创建Handler对象,在子线程中将处理结果通过handler的send方法将结果以Message对象的形式
发送到MessageQueue中,Looper从MessageQueue中轮询抽取Message对象,将抽取到的Message对象交给对应的Handler,
handler就能够回调他自己的handleMessage方法来处理该对象,也就是在这里面进行UI更新。
AsyncTask:谷歌提供一个轻量级的异步任务处理类。
自定义类继承AsyncTask,指定三个泛型参数.
重写方法,一般可以重写四个onPreExcute()(主线程,做准备工作)、
onDoinBackground()(子线程,做耗时或网络请求任务)、
onProgressUpdate()(子线程,进度更新)、onPostExcute()(主线程,根据结果更新UI)
14.SharedPreferences:sp以xml的形式进行文件存储:存储一些配置信息。
存储:
Editor edit = activity.getSharedPreferences(文件名字,访问模式).edit();
edit.put(key,value);
edit.commit();
读取:
SharedPreferences sp = activity.getSharedPreferences(文件名字,访问模式);
XXX value = sp.getXXX(key,默认值);