0
3つのフラグメントとactivity_mainを持つアンドロイドアプリで作業していますが、すべてがナビゲーションドロワーにリストされています。問題は、ナビゲーション・ドロワーの項目をクリックして、アクティビティー・メインに戻る方法です。ナビゲーションドロワーの項目をクリックしてアクティビティーメインに戻ります
私は必要WAHTの基本的な考え方は、これが私のコードでメイン
活動に戻ることが開いているすべての断片を閉じることです。あなたはフラグメントが..call呼び出すよう
if(id==R.id.taximetro){
//this is my activity_main that i need to return
trans = true;
} else if (id == R.id.factura) {
fragment=new frmFactura();
getSupportFragmentManager().beginTransaction().replace(R.id.content_main, fragment).addToBackStack(null).commit();
trans = true;
} else if (id == R.id.dispBlue) {
fragment=new frmDispositivos();
getSupportFragmentManager().beginTransaction().replace(R.id.content_main, fragment).addToBackStack(null).commit();
trans = true;
} else if (id == R.id.ayuda) {
fragment=new frmAyuda();
getSupportFragmentManager().beginTransaction().replace(R.id.content_main, fragment).addToBackStack(null).commit();
trans = true;
}
if (trans) {
getSupportFragmentManager().beginTransaction().replace(R.id.content_main, fragment).commit();
item.setCheckable(true);
getSupportActionBar().setTitle(item.getTitle());
}
//getSupportFragmentManager().beginTransaction().replace(R.id.content_main, fragment).addToBackStack(null).commit();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
にロードされた任意のフラグメントなしMainActivityのビューに既にあるので、ちょうどナビゲーションをスライドさせ、他のあなたの
MainActivity
を思い出すロードされている場合は、ナビゲーションドロワーアダプタのコードを追加してください。.. ? –あなたはすでにMainActivity ...内にいます。フラグメントはアクティビティ内にあります。 –
また、ここには重複したコードがたくさんあります。たとえば、if(trans){} 'は、他のすべてのif-else文で既に行った' beginTransaction()。replace'を実行します –