一、建立一个活动(activity)的一般步骤:
创建一个类,比如FirstActivity.class,并重写onCreate(Bundle savedInstanceState);
创建一个layout文件,为界面布局;
在onCreate中:
Button button = (Button)findViewById(R.id.button_2);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
//doSomething now
}
1、 显式用法:
Intent intent = new Intent(a.this,b.class);
startActivity(intent);
2、 隐式用法:
第一步AndroidManifest.xml:
<activity android:name=".SecondActivity">
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
第二步FirstActivity:
Intent intent = new Intent("com.example.activity.ACTION_START");
//这里没有intent.addCategory(),如果将DEFAULT改为其他比如MY_CATEGORY,则应该加上:
intent.addCategory("android.intent.category.MY_CATEGORY")
startActivity(intent);
更多的隐式用法,打开一个网页:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
类似的,还可以:
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
3、向下一个活动传递数据
String data = "hello,second activity!";
Intent intent = new Intent(a.this,b.class);
intent.putExtra("extra_data",data);//第一个参数用于后面从intent中取值
startActivity(intent);
//b.class这个活动中取数据/
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
4、返回数据给上一个活动
第一步a.class:
Intent intent = new Intent(a.this,b.class);
startActivityForResult(intent,1);//第二个参数为请求码requiestCode,传入一个唯一值
第二步b.calss:
Intent intent = new Intent();//空的intent,没有任何意图
intent.putExtra("data_return","Hello, First ACTION_DIAL");//把传递数据放在intent中
setResult(RESULT_OK,intent);//向上一个活动返回数据,第一个参数返回处理结果
finish();
第三步a.class:
由于我们是使用startActivityForResult()方法来启动第二个活动的,在第二个活动被销毁之后会回调上一个活动的onActivityResult()方法,因此需要在第一个活动中重写这个方法:
a.class:
@Override
protected void onActivityResult(int requiestCode,int resultCode,Intent data){
switch(requiestCode){
case 1:
if (requiestCode == RESULT_OK){
String returnData = data.getStringExtra("data_return");
}
}
1、 每个活动在其生命周期中最多有四种在状态:
运行状态:位于返回栈的栈顶;
暂停状态:不再处于栈顶,但是仍然可见;
停止状态:不再出于栈顶,且不可见,系统会为这种活动保存响应的 状态和成员变量;
销毁状态:当一个活动从返回栈中移除后就成了销毁状态;
2、 活动的生存期的7个回调方法:
onCreate():第一次被创建的时候调用,完成活动的初始化操作;
onStart():在活动由不可见变为可见的时候调用;
onResume():此时活动处于返回栈的栈顶,并且出于运行状态,在准备好和用户进行交互的时候调用;
onPause():在系统准备去启动或者恢复另外一个活动的时候调用,可以做一些消耗CPU的资源释放操作;
onStop():在活动完全不可见的时候调用;
onDestroy():在活动被销毁之前调用;
onRestart():在活动由停止状态变为运行状态之前调用
创建一个类,比如FirstActivity.class,并重写onCreate(Bundle savedInstanceState);
创建一个layout文件,为界面布局;
在AndroidMainfest.xml中注册活动;
在onCreate中:
Button button = (Button)findViewById(R.id.button_2);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
//doSomething now
}
}
Button btn = (Button) findViewById(R.id.mybutton);
Button btn2 = (Button) findViewById(R.id.mybutton2);
btn.setOnClickListener(handler);
btn2.setOnClickListener(handler);
View.OnClickListener handler = View.OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.mybutton:
//do something
break;
case R.id.mybutton2:
//do something
break;
}
}
1、 显式用法:
Intent intent = new Intent(a.this,b.class);
startActivity(intent);
2、 隐式用法:
第一步AndroidManifest.xml:
<activity android:name=".SecondActivity">
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
第二步FirstActivity:
Intent intent = new Intent("com.example.activity.ACTION_START");
//这里没有intent.addCategory(),如果将DEFAULT改为其他比如MY_CATEGORY,则应该加上:
intent.addCategory("android.intent.category.MY_CATEGORY")
startActivity(intent);
更多的隐式用法,打开一个网页:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
类似的,还可以:
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
3、向下一个活动传递数据
String data = "hello,second activity!";
Intent intent = new Intent(a.this,b.class);
intent.putExtra("extra_data",data);//第一个参数用于后面从intent中取值
startActivity(intent);
//b.class这个活动中取数据/
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
4、返回数据给上一个活动
第一步a.class:
Intent intent = new Intent(a.this,b.class);
startActivityForResult(intent,1);//第二个参数为请求码requiestCode,传入一个唯一值
第二步b.calss:
Intent intent = new Intent();//空的intent,没有任何意图
intent.putExtra("data_return","Hello, First ACTION_DIAL");//把传递数据放在intent中
setResult(RESULT_OK,intent);//向上一个活动返回数据,第一个参数返回处理结果
finish();
第三步a.class:
由于我们是使用startActivityForResult()方法来启动第二个活动的,在第二个活动被销毁之后会回调上一个活动的onActivityResult()方法,因此需要在第一个活动中重写这个方法:
a.class:
@Override
protected void onActivityResult(int requiestCode,int resultCode,Intent data){
switch(requiestCode){
case 1:
if (requiestCode == RESULT_OK){
String returnData = data.getStringExtra("data_return");
}
}
}
1、 每个活动在其生命周期中最多有四种在状态:
运行状态:位于返回栈的栈顶;
暂停状态:不再处于栈顶,但是仍然可见;
停止状态:不再出于栈顶,且不可见,系统会为这种活动保存响应的 状态和成员变量;
销毁状态:当一个活动从返回栈中移除后就成了销毁状态;
2、 活动的生存期的7个回调方法:
onCreate():第一次被创建的时候调用,完成活动的初始化操作;
onStart():在活动由不可见变为可见的时候调用;
onResume():此时活动处于返回栈的栈顶,并且出于运行状态,在准备好和用户进行交互的时候调用;
onPause():在系统准备去启动或者恢复另外一个活动的时候调用,可以做一些消耗CPU的资源释放操作;
onStop():在活动完全不可见的时候调用;
onDestroy():在活动被销毁之前调用;
onRestart():在活动由停止状态变为运行状态之前调用