您的位置:首页 > 移动开发 > Android开发

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

2016-03-17 11:04 447 查看
之前,关于传值出了三篇文章,但是忽略了一个至关重要的内容,也是传值中很常用的一个,就是回掉传值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是多少,才能够接受使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: