展会信息港展会大全

android开发中 activity间的传值
来源:互联网   发布日期:2016-01-14 09:26:18   浏览:2314次  

导读:1.值由A.class传递到B.classA.class中:Intent intent = new Intent(); //设置传递方向 intent.setClass(A.this,B.class); //绑定数据 intent.putExtra(username1,username); in......

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

程序中调用其它程序的Activity

1

Intent intent = new Intent(Intent.ACTION_MAIN);

2

ComponentName componentName = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");

3

intent.setComponent(componentName);

4

5

startActivity(intent);

"com.android.settings"是要打开的程序包名,"com.android.settings.WirelessSettings"是要打开的Activity。

赞助本站

人工智能实验室

相关热词: 传值

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港