2016-10-07 2 views
1

나는 활동에 의해 유지됩니다 조각을 몇 가지 있습니다. 응용 프로그램은 '홈'조각에서 시작하여 '조각 A'로 이동 한 다음 설정 활동으로 이동하고 설정 활동에서 뒤로 누르면 '조각 A'가 '집'조각으로 바뀝니다. 'Fragment A'상태를 유지하고 'Settings'활동에서 돌아올 때 서랍을 열어 두는 방법은 무엇입니까?활동에서 returining 후 조각을 보유

설명을 위해 필자는 활동을 시작한 부분 (이 경우 설정 활동)으로 돌아가서 '집'조각으로 돌아 가지 않기를 원합니다. 어떤 도움을 주시면 감사하겠습니다.

여기 서랍에 내 코드입니다 :

if (id == R.id.fragOne) { 
     fragment1 = new FragmentOne(); 
     android.support.v4.app.FragmentManager fragmentManager1 = getSupportFragmentManager(); 
     fragmentManager1.beginTransaction() 
       .replace(R.id.container, fragment1, "frag1") 
       .commit(); 
    } else if (id == R.id.fragTwo) { 
     fragment6 = new fragmentTwo(); 
     android.support.v4.app.FragmentManager fragmentManager2 = getSupportFragmentManager(); 
     fragmentManager2.beginTransaction() 
       .replace(R.id.container, fragment2, "frag2") 
       .commit(); 
    } else if(id == R.id.helpDrawer){ 
     Intent drawerHelp = new Intent(MainActivity.this, Help.class); 
     startActivity(drawerHelp); 

    } 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer != null) { 
     drawer.closeDrawer(GravityCompat.START); 
    } 
    return true; 
+0

어떻게 활동에서 단편화로 돌아가십니까? – Sanoop

+0

활동에서 뒤로 버튼을 누르면 조각으로 돌아갑니다. 내 주요 활동에서 서랍이 열려 있는지 확인하기 위해 뒤로 버튼을 재정의합니다. @Override public void onBackPressed() { DrawerLayout drawer = (DrawerLayout) findViewById (R.id.drawer_layout); if (drawer! = null) { if (drawer.isDrawerOpen (GravityCompat.START)) { drawer.closeDrawer (GravityCompat.START); } else { super.onBackPressed(); } } } –

+0

'supportFinishAfterTransition();'을 (를) 사용해 보았습니까? – Sanoop

답변

1

시도 추가를 완료() 뒤로 버튼은 설정 활동을 눌렀을 때. 다른 액티비티에서 하나의 액티비티를 호출하면 호출자 액티비티의 인스턴스 상태가 저장되어 프래그먼트가 스택에 저장되고 액티비티가 호출되므로 다시 돌아가려면 첫 번째 액티비티와 호출자 액티비티의 인스턴스 상태를 완료하면된다. 이 호출 될 것이고 당신은 당신이 설정 활동이라고 불렀던 것과 같은 조각을 얻을 것이다. 이 코드를 SettingsActivity에 추가하십시오.

@Override 
onBackPressed{finish();} 

이렇게하면 조각 문제가 해결됩니다. 열어 두는 서랍에 대해 확신하지 못합니다.

관련 문제