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;
}
}
留下代码 方便以后查看