`

activity间的传值

阅读更多


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

Java代码收藏代码
  1. Intentintent=newIntent();
  2. //设置传递方向
  3. intent.setClass(A.this,B.class);
  4. //绑定数据
  5. intent.putExtra("username1",username);
  6. intent.putExtra("userpwd1"userpwd);
  7. /*或者绑定成一捆数据
  8. Bundledata=newBundle();
  9. data.putString("username1",username);
  10. data.putString("userpwd1",userpwd);
  11. intent.putExtras(data);
  12. */
  13. //启动activity
  14. this.startActivity(intent);

B.class中:

Java代码收藏代码
  1. Intentintent=getIntent();
  2. //获取数据
  3. Stringusername=intent.getStringExtra("username1");
  4. Stringuserpwd=intent.getStringExtra("userpwd1");
  5. /*Bundledata=intent.getExtras();
  6. Stringusername=intent.getString("username1");
  7. Stringuserpwd=intent.getString("userpwd1");*/

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

A.class中

this.startActivity(intent);

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

B.class中

对传过来的intent对象赋新值

Java代码收藏代码
  1. intent.putExtra("username2",username2);
  2. intent.putExtra("userpwd2",userpwd2);
  3. this.setResult(1,intent);
  4. this.finish();//结束焦点

A.class中重写

Java代码收藏代码
  1. @OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
  2. super.onActivityResult(requestCode,resultCode,data);
  3. if(resultCode==1)
  4. {
  5. //可从data中取出值
  6. }
  7. }

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可以实现其他很多功能

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics