发新帖

浅析:Acitivity间数据的传递

[复制链接]
9291 1
使用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

花墨    发表于 2015-9-21 21:46:43 | 显示全部楼层
我也发过此贴,LZ加油!

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表