《第一行代码》学习笔记
一到三章总结复习:
1.手动创建活动:
a.新建一个安卓项目(不勾选Create Activity选项)
b.在src下新建一个package,在包内新建一个MainActivtiy类,并继承自Activity,重写onCreate方法
protected void onCreate(Bundle savedInstaceState){
<span style="white-space:pre"> </span>super.onCreate(saveInstanceState);
}
c.创建和加载布局
d.在AndroidManifest文件中注册
2.在活动中使用Toast
Toast.makeText(Context context, CharSequence text, int duration).show();
通过静态方法makeToast()创建一个Toast对象,然后调用show()将Toast显示出来
其中context是Toast要求的上下文,text是Toast显示的文本内容,duration是Toast显示的时长
3.销毁一个活动
Back或在活动中调用finish()方法
4.Intent
android.content.Intent
Explicit Intents(显式)
-
Intent(Context packageContext,Class<?> cls)
Create an intent for a specific component.
-
第一个参数Context要求提供一个启动活动的上下文。第二个参数Class则是指定想要启动的目标活动
-
创建好显式Intent后使用
-
startActivity(intent);
-
-
Implicit Intents(隐式)
-
隐式Intent不明确指出想要启动的活动,而是指定一系列更为抽象的action和category(在AndroidManifest.xml中的<activity>标签中的<intent-filter>中指定)
使用Intent向下一个活动传递数据
Intent中提供了一系列的putExtra()方法(方法中接受两个参数,第一个参数是键,第二个参数才是真正要传递的数据)的重载,可以把我们想要传递的数据暂存在Intent中,启动另一个活动后,通过getIntent()方法获取Intent,然后调用相应的getXXXExtra()方法,传入相应的键值
返回数据给上一个活动
startActivityForResult()方法接受两个参数,第一个是Intent,第二个是请求码(只要是唯一值就行)
5.活动生命周期
活动被回收了怎么办
通过onSaveInstanceState()方法解决活动被回收时临时数据得不到保存的问题
onSavaInstanceState()方法会携带一个Bundle类型的参数,Bundle提供了一系列的方法用于保存数据,putXXX(),putString(),putInt(),方法接受的第一个参数作为键,第二个是真正要保存的数据
@Override
protected void onInstanceState(Bundle outSate){
<span style="white-space:pre"> </span>super.onSaveInstanceState(outState);
<span style="white-space:pre"> </span>String tempData = "lalala";
<span style="white-space:pre"> </span>outState.putString("data_key",tempData);
}
@Override
protected void onCreate(Bundle savadInstanceState){
<span style="white-space:pre"> </span>super.onCreate(savedInstanceState);
<span style="white-space:pre"> </span>setContentView(R.layout.activity_main);
<span style="white-space:pre"> </span>if(savedInstanceState != null){
<span style="white-space:pre"> </span>String tempData = savadInstanceState.getString("data_key");
}
}
6.最常用和最难用的控件——ListView
Adapter!!!!!!!