Android多个Activity

使用多个Activity首先在AndroidManifest.xml文件中声明:

<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();//关闭activity

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值