android使用startActivityForResult多级回传参数

startActivityForResult 回传参数 经常会被选择某些属性时候的时候用到

但是大多时候,都是只有一级。那么如何从二级页面直接传到主页面呢。

可以这样从二级页面传到一级页面。在传回主页面。

二级页面代码

mListView.setOnItemClickListener(new OnItemClickListener() {


@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
RegionModel region = mAdapter.getItem(position);
Intent data = new Intent();
data.putExtra("city", region);
setResult(1, data);
finish();
}
});

一级页面接收到二级页面传来的参数,然后直接传回主页面

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 1) {
RegionModel city = (RegionModel) data.getSerializableExtra("city");//二级页面的参数
Intent intent = new Intent();
intent.putExtra("province", mProvince);
intent.putExtra("city", city);
setResult(1, intent);
finish();
}
}

最后主页面直接接收一级页面的参数

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case LOCREQ:
if (resultCode == 1) {
RegionModel province = (RegionModel) data.getSerializableExtra("province");
RegionModel city = (RegionModel) data.getSerializableExtra("city");
// locImageView.setVisibility(View.GONE);
if (mPosition == 1) {
phoneCityTextView.setVisibility(View.VISIBLE);
phoneCityTextView.setText(province.getName() + "  " + city.getName());
} else if (mPosition == 2) {
childCityTextView.setVisibility(View.VISIBLE);
childCityTextView.setText(province.getName() + "  " + city.getName());
} else if (mPosition == 3) {
parentCityTextView.setVisibility(View.VISIBLE);
parentCityTextView.setText(province.getName() + "  " + city.getName());
}
} else {
Toast.makeText(context, "无效地址", Toast.LENGTH_LONG).show();
}
break;
default:
break;
}
}


留下代码 方便以后查看

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值