搜索标签:
Android Activity
|
Android多个Activity |
[阅读次数:828次] [发布时间:2013年5月30日] |
使用多个Activity首先在AndroidManifest.xml文件中声明:
- <activity android:name="com.yaku.B"/>
<activity android:name="com.yaku.B"/>
如有A和B两个Activity,由A打开B,并传递参数给B:
A Activity
//打开 B Activity
Intent intent = new Intent(A.this, B.class);//为Intent设置要激活的组件
/*intent.putExtra("name", "小九九");
intent.putExtra("age", 26);*/
Bundle bundle = new Bundle();
bundle.putString("name", "小九九");
bundle.putInt("age", 26);
intent.putExtras(bundle);
//写法一 intent.setClass(A.this, B.class);//设置要激活的组件
//写法二 intent.setComponent(new ComponentName(A.this, B.class));//设置要激活的组件
startActivity(intent);
B Activity 得到参数:
Intent intent = this.getIntent();//得到激活它的Intent
String name = intent.getStringExtra("name");
int age = intent.getExtras().getInt("age");//第二种写法
B 处理完后要返回结果给A 则不能使用startActivity(intent); 来启动B
而是startActivityForResult(intent, 100); 第二个参数为请求码。
同时A要重写onActivityResult 方法,该方法为系统自动调用。如:
A Activity:
public void onCreate(Bundle savedInstanceState) {
Intent intent = new Intent(A.this, B.class);//为Intent设置要激活的组件
/*intent.putExtra("name", "小九九");
intent.putExtra("age", 26);*/
Bundle bundle = new Bundle();
bundle.putString("name", "小九九");
bundle.putInt("age", 26);
intent.putExtras(bundle);
startActivityForResult(intent, 100);//第二个参数为设置的请求码
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Toast.makeText(this, data.getStringExtra("result"), 1).show();//得到返回结果
super.onActivityResult(requestCode, resultCode, data);
}
B Activity:
- Intent intent = new Intent();
- intent.putExtra("result", "这是处理结果");
- setResult(20, intent);
- finish();
本页地址:
[复制地址]
该页内容非本站原创 收藏自:http://yaku2688.iteye.com/blog/1189186
|
返回顶部 |
|
|
|