Android - 在简历上显示片段

时间:2016-11-10 07:18:21

标签: android android-fragments lifecycle resume fragmentmanager

我目前有一个导航抽屉,在我的活动中有一些片段(Home,Help,About)。在启动时,它打开了Home。我遇到的问题是,当我转到另一个片段(例如“帮助”),然后继续将手机置于睡眠状态,然后再打开手机,它将始终返回“主页”而不是“帮助”。

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

编辑:提供相关代码 更新:意识到这是因为我在简历上重新启动了视图。

@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();
}

1 个答案:

答案 0 :(得分:1)

使用sharedpreferences保存当前标签位置,并在onResume()中使用它移动到保存位置。