浅析:Acitivity间数据的传递

使用startActivityForResult方法进行数据传递。

MainActivity.java:
1 public class MainActivity extends Activity {
2 Button btn;
3 @Override
4 protected void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.activity_main);
7 Button btn=(Button)findViewById(R.id.button1);
8 btn.setOnClickListener(new OnClickListener(){
9 @Override
10 public void onClick(View arg0) {
11 Intent intent=new Intent(MainActivity.this,OtherActivity.class);
12 startActivityForResult(intent,1);
13 }
14 });
15
16
17 }
18 protected void onActivityResult(int requestCode,int resultCode,Intent data){
19 switch(requestCode){
20 case 1:
21 String result=data.getExtras().getString("result");
22 }
23 }
24
25 }

OtherActivity.java:
1 public class OtherActivity extends Activity {
2 Button btn2;
3 /**
4 * @param args
5 */
6 protected void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.activity_other);
9 Button btn2=(Button)findViewById(R.id.button2);
10 btn2.setOnClickListener(new OnClickListener(){
11
12 @Override
13 public void onClick(View arg0) {
14 // TODO Auto-generated method stub
15 Intent intent=new Intent();
16 intent.putExtra("result", "hello world");
17 OtherActivity.this.setResult(resultcode, intent);
18 OtherActivity.this.finish();
19 }});
20 }
21 }

注:

1.请求码requestCode:startActivityForResult(intent,requestCode)和onActivityResult(int requestCode,int resultCode,Intent data)中的requestCode为请求码, 它的作用是用于标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面 Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那个按钮打开的,并且要做出 相应的业务处理。

2.结果码resultCode:在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面Activi ty的onActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(Result Activity和NewActivity为要打开的新Activity)。

PS:对于APP安全检测一般我都会用:[url]http://www.ineice.com[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值