【发布时间】:2012-07-29 12:01:55
【问题描述】:
我的启动器活动会生成一个 ListView。
现在在 ListView 上,我有一个 setOnItemClickListener,它基本上会将位置和 id 传递给一个新活动。
mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(ActivityHome.this, ActivityDetail.class);
intent.putExtra("cm_position", position);
intent.putExtra("cm_id", id);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});
现在 ActivityHome 中的 ListView 显示在 ListView 中间的某个位置。
当我在 ActivityDetail 中时,我有一个 actionBar.setDisplayHomeAsUpEnabled(true);所以当下面执行时,它会回到ActivityHome
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, ActivityHome.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
问题是 ListView 中的位置丢失,ListView 回到顶部。有没有办法阻止 onCreate() 被执行,只为 ActivityDetail 销毁 Activity,然后回到 ActivityHome 到原来的样子......我希望你能理解。
我想我可能为意图设置了错误的标志...
【问题讨论】:
标签: android android-activity android-loadermanager