2016-11-10 129 views
2

我目前有一个导航抽屉,在我的活动中有几个片段(Home,Help,About)。在启动时打开Home。我遇到的问题是,当我转到另一个片段(例如“帮助”),然后继续让手机进入睡眠状态并随后打开手机时,它将始终返回到主页而不是帮助。Android - 恢复显示片段

我对生命周期很陌生,但希望得到一些关于如何从不同片段恢复的反馈。

编辑:提供相关代码 更新:意识到这是因为我重新审视简历上的意见。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    initializeUI(); 
} 


private void initializeUI() { 


    fragAbout = new About(); 
    fragHelp = new Help(); 
    fragHome = new MyViewPager(); 


    // Adding fragments to activity 
    FragmentManager fragmentManager = getSupportFragmentManager(); 

    FragmentTransaction transaction = fragmentManager.beginTransaction(); 
    transaction.add(R.id.main_activity_fraglayout, fragHome); 

    transaction.commit(); 

    ... 


} 

private void addDrawerItems() { 

    ... 

    DrawerItemAdapter drawerAdapter = new DrawerItemAdapter(this, R.layout.nav_list_row, drawerItems); 
    mDrawerList.setAdapter(drawerAdapter); 

    mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      switch (position) { 
       case 0: 
        ... 
        newFragOnClick(fragHome, "Home"); 
        break; 
       case 1: 
        ... 
        newFragOnClick(fragSettings, "Help"); 
        break; 
       case 2: 
        ... 
        newFragOnClick(fragAbout, "About"); 
        break; 
       default: 
        break; 

      } 
     } 
    }); 
} 

private void newFragOnClick(Fragment frag, String actionBarTitle){ 

    FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction transaction = fragmentManager.beginTransaction(); 

    transaction.replace(R.id.main_activity_fraglayout, frag); 
    transaction.commit(); 
} 
+0

请上传您的活动的完整代码 –

+1

您可以通过托管的活动处理此导航,在托管活动的onResume()中替换所需的片段 – Farhan

+0

@Farhan是的,这似乎工作。谢谢! – WonderfulWonder

回答

1

使用sharedpreferences保存当前选项卡的位置,并在onResume()用它移动到保存的位置。

+0

巧合的是,我的应用程序中有其他位置的浏览器(带有选项卡),这也与我需要的其他东西有关。谢谢!但是,抽屉实际上与视图传呼机不同(带有选项卡)。 – WonderfulWonder

+0

实际上这个逻辑仍然可以使用。真棒。谢谢! – WonderfulWonder