android使用startActivityForResult多级回传参数

来源:互联网 发布:手指数算法5加6怎么算 编辑:程序博客网 时间:2024/05/17 18:01

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;
}
}


留下代码 方便以后查看

0 0
原创粉丝点击