【发布时间】:2016-08-19 10:05:28
【问题描述】:
我想创建一个将在父活动对象单击时打开的子活动。为了更好地理解,请参阅 redbus 应用程序的屏幕截图:
在第一个屏幕中,用户点击进入城市(以红色突出显示)然后进入第二个屏幕,用户通过搜索城市名称来选择城市。然后在点击城市后,用户将返回屏幕 1 并选择城市,并且它不会影响屏幕 1 之前的数据。
我也试过了,可以看代码:
UserDetails.java
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnCancel:
CancelAll();
break;
case R.id.defenceArea:
DefenceAreaSelection();
break;
default:
}
}
private void DefenceAreaSelection() {
isSelection = true;
ArrayList<Integer> IdList = new ArrayList<>();
for (int i=0;i<mDefenceAreaModel.size();i++){
IdList.add(mDefenceAreaModel.get(i).getDefenseAreaID());
}
Intent intent = new Intent(UserDetails.this, ListSelection.class);
intent.putExtra("names",mDefenceAreaNames);
intent.putExtra("ID",IdList);
//TODO send 2 array for id and names to ease the process
startActivityForResult(intent,requestCodeDefenceArea);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == requestCodeDefenceArea){
Log.e("defe","got it");
}
}
ListSelection.java
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_select_screen);
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
try {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} catch (NullPointerException e) {
e.printStackTrace();
//Log.e("exception",e.getMessage());
}
ArrayList<String> listNames = (ArrayList<String>) getIntent().getSerializableExtra("names");
ArrayList<Integer> listId = (ArrayList<Integer>) getIntent().getSerializableExtra("ID");
list = (ListView)findViewById(R.id.listNames);
ArrayAdapter adapter = new ArrayAdapter(ListSelection.this,android.R.layout.simple_dropdown_item_1line,listNames);
list.setAdapter(adapter);
//TODO onitem click set the result and go back to parent activity
}
但我遇到的问题是在选择区域后它会返回上一个屏幕,但屏幕 1 中的前一个数据不再存在,这意味着除了 Activity Result 它还调用 onCreate() 方法。
【问题讨论】:
标签: java android android-activity parent-child activity-lifecycle