ANDROID安卓activity与fragment,activity之间互相传值(四)

来源:互联网 发布:cad迷你看图mac版免费 编辑:程序博客网 时间:2024/05/16 12:19

之前,关于传值出了三篇文章,但是忽略了一个至关重要的内容,也是传值中很常用的一个,就是回掉传值activity的启动回掉,方法,这个传值在界面通信之间起着至关重要的作用,下面直接看代码

FirsrActivity中

Intent intent = new Intent(FirsrActivity.this,SecondActivity.class);startActivityForResult(intent,REQUEST_CODE);

这样用来启动SecondActivity,startActitvityForResult中的第一个参数为启动意图,第二个参数为请求编码,

SecondActivity中

//跳回Intent intent = new Intent();intent.putStringArrayListExtra("cMeMber", memberList);setResult(RESULT_CODE,intent);finish();

此处是SecondActivity中的设置回传Intent设置 即setResult,第一个参数即是回传的参数,第二个参数是intent.即可以传回多个属性放置在INTENT中,放置bundler也可以,即万物都可以传。

然后继续是FirstActivity中的代码,

protected void onActivityResult(int requestCode, int resultCode, Intent data) {    if(data!=null)    {    if (requestCode == 1)    {        t_Adress.setText(data.getStringExtra("DeatailPlace"));    }    else if (requestCode==2 && resultCode == 2)    {            OppenentName = data.getStringExtra("cOppenentName");            OppenentID = data.getStringExtra("cOppenentID");            m_tvShowName.setText("" + data.getStringExtra("cOppenentName"));    }else if(requestCode == 3)    {        requestAddMatchBaseBean.cTeamID = data.getStringExtra("cMyTeamID");        m_tvShowMyTeam.setText(""+data.getStringExtra("cMyTeamName"));        m_tvShowMyMember.setText("已通知 1 人");        m_tvShowMyMemberTab.setTextColor(Color.parseColor("#e8e8e8"));        m_tvShowMyMember.setTextColor(Color.parseColor("#e8e8e8"));    }else if(requestCode == 4)    {        memberlist = new ArrayList<>();        memberlist = data.getStringArrayListExtra("cMeMber");        m_tvShowMyMember.setText("已通知 " + memberlist.size()+" 人");    }    }    super.onActivityResult(requestCode, resultCode, data);}
这边是传回的值,是在OnActivityResult中,接受,并且做判断,data既是回传的intent,需要判断是否为空,不然的话容易出错

而且需要判断,resultcode是多少,才能够接受使用

1 0