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

android使用startActivityForResult多级回传参数

2015-07-02 14:16 721 查看
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;

}

}

留下代码 方便以后查看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: