intent activity间的传值

activity间的传值
1.值由A.class传递到B.class
A.class中:

Intent intent = new Intent();
 //设置传递方向 
intent.setClass(A.this,B.class); 
//绑定数据 
intent.putExtra("username1",username); 
intent.putExtra("userpwd1"userpwd);
 /*或者绑定成一捆数据 
Bundle data = new Bundle(); 
data.putString("username1",username); 
data.putString("userpwd1",userpwd);
intent.putExtras(data); 
*/ 
//启动activity 
this.startActivity(intent); 

 

 

 

 

B.class中:

 

 

Intent intent = getIntent(); 
//获取数据 
String username = intent.getStringExtra("username1"); 
String userpwd = intent.getStringExtra("userpwd1"); 
/* Bundle data = intent.getExtras(); 
String username = intent.getString("username1"); 
String userpwd = intent.getString("userpwd1"); */ 

 

 

 

 2.除了A.class可以向B.class传值外,B.class也可以返回值

 A.class中

 this.startActivity(intent);

 改为this.startActivityFroResult(intent,1);//1为请求码

 B.class中

 对传过来的intent对象赋新值

intent.putExtra("username2",username2); 
intent.putExtra("userpwd2",userpwd2);
this.setResult(1,intent); 
this.finish();//结束焦点 

A.class中重写

 

 

@Override protected void onActivityResult(int requestCode,int resultCode,Intent data){
 super.onActivityResult(requestCode,resultCode,data); 
 if(resultCode==1) 
{
 //可从data中取出值 
} 
} 

 A.class中取出B.class中intent传过来的值

 

 3.intent.setClass(A.this,B.class)的另一种写法

在manifest.xml中B的Activity中加入

<intent-filter>

<action android:name="com.showB">//这里可以随便写

<category android:name = "android.intent.category.DEFAULT">

</intent-filter>

那么A中就可以直接写

intent.setAction("com.showB");

来代替

intent.setClass(A.this,B.class);

这也就提示了我们利用intent-filter可以实现其他很多功能

你可能感兴趣的:(android,xml)