Activity间的传值
1.值由Aactivity传递到Bactivity
Aactivity.java 中的代码:
Intent intent = new Intent();
//设置传递方向
intent.setClass(this,Bactivity.class);
//绑定数据
intent.putExtra("name",name);
intent.putExtra("age"age);
/*或者绑定成一捆数据
Bundle data = new Bundle();
data.putString("name",name);
data.putString("age",age);
intent.putExtras(data);
*/
//启动activity
this.startActivity(intent);
Bactivity中的代码:
Intent intent = getIntent();
//获取数据
String name = intent.getStringExtra("name");
String age = intent.getStringExtra("age");
/* Bundle data = intent.getExtras();
String name= intent.getString("name");
String age= intent.getString("age"); */
2.除Aactivity.java可以向Bactivity.java传值外,Bactivity.java也可以返回值Aactivity.java中
this.startActivity(intent);
改为this.startActivityFroResult(intent,1);//1为请求码
Bactivity.java中
对传过来的intent对象赋新值
intent.putExtra("name",name);
intent.putExtra("age",age);
this.setResult(1,intent);
this.finish();//结束焦点
Aactivity.java中重写
@Override protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);
if(resultCode==1)
{
//可从data中取出值
}
}
@Override protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);
if(resultCode==1)
{
//可从data中取出值
}
}
Aactivity.java中取出Bactivity.java中intent传过来的值
3.intent.setClass(this,Bactivity.java)的另一种写法
在manifest.xml中,Bactivity.java中加入
<intent-filter>
<action android:name="com.showBactivity">//这里可以随便写
<category android:name = "android.intent.category.DEFAULT">
</intent-filter>
那么Aactivity.java中就可以直接写
intent.setAction("com.showBactivity");
来代替
intent.setClass(this,Bactivity.class);
这也就提示了我们利用intent-filter可以实现其他很多功能