1.值由A.class传递到B.class
A.class中:
- Intentintent=newIntent();
- //设置传递方向
- intent.setClass(A.this,B.class);
- //绑定数据
- intent.putExtra("username1",username);
- intent.putExtra("userpwd1"userpwd);
- /*或者绑定成一捆数据
- Bundledata=newBundle();
- data.putString("username1",username);
- data.putString("userpwd1",userpwd);
- intent.putExtras(data);
- */
- //启动activity
- this.startActivity(intent);
B.class中:
- Intentintent=getIntent();
- //获取数据
- Stringusername=intent.getStringExtra("username1");
- Stringuserpwd=intent.getStringExtra("userpwd1");
- /*Bundledata=intent.getExtras();
- Stringusername=intent.getString("username1");
- Stringuserpwd=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中重写
- @OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
- 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可以实现其他很多功能