我有一个场景,我点击ListFragment并启动一个新的Activity,如下所示:
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Intent intent = new Intent(getActivity(), VenueBeerActivity.class);
Parcelable wrapped = Parcels.wrap(mAdapter.getItem(position));
intent.putExtra("venue", wrapped);
startActivity(intent);
}
这样可以正常工作并显示新活动。
我已修改此活动清单,因此它指回其父活动(在本例中为主要活动)
然而我遇到的问题是当按下后退按钮时,它会重新加载整个父按钮。父母是一个列表,我不希望它重新加载用户的位置。我该如何防止这种情况?
作为一个说明。父母有一个Page Tab Strip。
我确定这是一个相对简单的修复......
答案 0 :(得分:8)
你是什么意思"后退按钮"?它是工具栏中的向上按钮吗?如果是这种情况,请将onOptionsItemSelected
中的VenueBeerActivity
修改为:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
因此,当用户按下向上按钮时,它将获得导航栏中后退按钮的行为。
答案 1 :(得分:1)
在父活动中,将android:launchMode
属性设置为singleTop
。这会阻止系统在按下向上按钮时创建新的父实例。