A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© asd19860 中级黑马   /  2015-9-21 10:04  /  300 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

使用startActivityForResult方法进行数据传递。
MainActivity.java
1 public class MainActivity extendsActivity {
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=newIntent(MainActivity.this,OtherActivity.class);
12                startActivityForResult(intent,1);   
13             }        
14        });
15            
16        
17    }
18    protected void onActivityResult(int requestCode,int resultCode,Intentdata){
19        switch(requestCode){
20        case 1:
21        String result=data.getExtras().getString("result");
22        }
23    }   
24
25 }
OtherActivity.java
1 public class OtherActivity extendsActivity {
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-generatedmethod 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.请求码requestCodestartActivityForResult(intent,requestCode)onActivityResult(intrequestCode,int resultCode,Intent data)中的requestCode为请求码, 它的作用是用于标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面 ActivityonActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那个按钮打开的,并且要做出 相应的业务处理。
2.结果码resultCode:在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面ActivityonActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(Result ActivityNewActivity为要打开的新Activity)
PS:对于APP安全检测一般我都会用:www.ineice.com

1 个回复

正序浏览
最后一行的软文广告,真是绝啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马