我有以下活动在选择标签时启动片段:
public class MainActivity extends Activity implements TabListener {
Fragment f = null;
.....
public void onTabSelected(Tab tab, FragmentTransaction ft) {
.....
if (tab.getPosition() == 0) {
if (initalSync == true) {
progress1.setVisibility(TRIM_MEMORY_UI_HIDDEN);
}
f = new EventFragment();
Bundle data = new Bundle();
data.putInt("idx", tab.getPosition());
f.setArguments(data);
}
if (tab.getPosition() == 1) {
progress1.setVisibility(TRIM_MEMORY_UI_HIDDEN);
f = new MapsFragment();
Bundle data = new Bundle();
data.putInt("idx", tab.getPosition());
f.setArguments(data);
}
.....
ft.replace(android.R.id.content, f);
}
当我按下任何片段上的手机后退按钮时,它会关闭我的应用程序。我知道这与backstack有关,但我尝试过的每一种方法都失败了。
任何想法?
答案 0 :(得分:0)
如果您不希望在按下时关闭活动,则需要将片段添加到Backstack,您只需调用以下方法:
ft.addToBackStack(null)
在您更换并提交交易之前。 这样,您正在使用的片段注入将被跟踪,后退按钮将更改为previos片段,直到达到第一个操作,然后它将关闭应用程序。
问候!
答案 1 :(得分:0)
您需要在事务上调用addToBackstack(null)以将片段添加到backstack。然后后退按钮应该恢复到上一个片段。