为什么我在Android中遇到onBackPressed问题

时间:2015-02-02 09:42:56

标签: android

当我点击真实设备上的背面按键时,它转到主页而不是上一页,这里我使用片段如何解决该问题

在第一片段中

NotesFragment notes = new NotesFragment();
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.day_fragment_mainLayout, notes);
transaction.addToBackStack(null);
transaction.commit();
第二段中的

DayFragment day = new DayFragment();
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.addToBackStack(null);
transaction.replace(R.id.day_fragment_mainLayout, day);
transaction.commit();
第三段中的

ItemsFragment items = new ItemsFragment();  
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.addToBackStack(null);
transaction.replace(R.id.day_fragment_mainLayout, items);
transaction.commit();

当我点击背压按钮时,它会转到主页,我需要prevoius页面。

注意: btnclick我用来一对一地导航片段

2 个答案:

答案 0 :(得分:1)

您可以使用FragmentTransaction的add()方法实现它,然后覆盖onBackPressed,您必须弹出FragmentManager的后台堆栈。这将导致您描述的行为。

答案 1 :(得分:0)

您无法返回,因为您没有打开任何新活动。 OnBackPressed将您带到存储在堆栈中的上一个活动。如果要返回上一个片段,则必须将前一个片段存储在某处,然后使用:

@Override
public void onBackPressed() {
// here you should change the fragment
    transaction.replace(YOUR_PREVIOUS_FRAGMENT, items);
    transaction.commit();
}

感谢您的关注!