2

과 2 menu items을 포함하여 Base Activity이 있습니다. 시작시 에 이로드됩니다. 각로드는 특정 fragment입니다. 조건 & 조건 메뉴 항목을 선택하면 뒤로 버튼을 누르면 단순히 죽이기 때문에 T & C fragment &이로드됩니다.처음으로 조각을 닫으려면 뒤로 단추를 두 번 눌러야하는 이유는 무엇입니까?

그러나 About Us 메뉴 항목을 선택하면 About fragment이로드되지만 BACK button을 두 번 눌러서 삭제해야합니다. 왜 그런 일이 일어날 지 알아야합니까? AppBaseActivity

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     fragmentManager = getSupportFragmentManager(); 
     fragmentTransaction = fragmentManager.beginTransaction(); 
     HomeFragment homeFragment = new HomeFragment(); 
     fragmentTransaction.add(R.id.body_container, homeFragment, ""); 
     fragmentTransaction.commit(); 
} 

    @Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
     // Handle navigation view item clicks here. 
     navigationView.getMenu().findItem(item.getItemId()).setChecked(true); 
switch (item.getItemId()) { 
      case R.id.nav_terms : 
       fragmentTransaction = fragmentManager.beginTransaction(); 
       TCFragment tcFragment = new TCFragment(); 
       fragmentTransaction.replace(R.id.body_container, tcFragment, ""); 
       fragmentTransaction.commit(); 
       break; 

      case R.id.nav_about_us : 
       fragmentTransaction = fragmentManager.beginTransaction(); 
       AboutUsFragment aboutUsFragment = new AboutUsFragment(); 
       fragmentTransaction.replace(R.id.body_container, aboutUsFragment, ""); 
       fragmentTransaction.commit(); 
       break; 
} 

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
     return true; 
} 

All fragments에서 코드의

부분은 단순히만을 존경 XML을 팽창에 의해 onCreateView()을 무시했다. fragments에는 코드가 아직 작성되지 않았습니다.

+0

를 사용하지 않고 onBackPressed()를 사용하여로드 조각 대신 .replace의 .add 및 – Redman

+0

당신이 무시 않은 볼'onBackPressed()' –

+0

그러나 그 다음 T & C 단편의 경우에 작동하는 이유는 무엇입니까? – VVB

답변

-2
@Override 
    public void onBackPressed() { 
    super.onBackPressed();  
} 
+0

OP에 대한 간략한 설명이 유용 할 수 있습니다. – Nevertheless

0

원하는 경우 하드웨어 탐색을 중지 할 수 있습니다.

간단히 super.onBackPressed()

@Override 
public void onBackPressed() { 

}