【android学习笔记】startActivityForResult与setResult在Activity之间回传值的运用

【使用范围】页面间回传值

【场景】在Page1点击跳转页面Page2,在Page2获取到String传回Page1接收,常用在搜索页面,条件选择页面。

Page1点击跳转代码:

Intent intent=new Intent(SearchActivity.this,ChoseClient.class);
                startActivityForResult(intent,1001);

Page2选择好参数回传代码:

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                String mClient = (String) ((TextView)view.findViewById(R.id.tv_clientName)).getText();
                if(mClient!=null&&mClient!=""){
                    Intent intent=new Intent();
                    intent.putExtra("client",mClient);

                    setResult(1001,intent);
                    finish();
                }
            }
        });

Page1接收Page2传回参数代码:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==1001&&requestCode==1001){
            String mClient=data.getStringExtra("client");
            idClient.setText(mClient);
        }
    }

需要注意的是,跳转Page2前

startActivityForResult(intent,1001);加了个requestCode以及

跳转Page1

setResult(1001,intent);加了个resultCode

用来判断是哪个页面传递过来的值,方便后续操作。

 
发布了44 篇原创文章 · 获赞 21 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/gzyh_tech/article/details/82355585