2016-03-26 10 views
1

私のアプリケーションには、3つのフラグメントをナビゲートするナビゲーションビューを含むアクティビティが1つしかありません。アクションバー上のボタンリスナー

私はフラグメントに移動すると、私はハンバーガーメニューアイコンを取得するには、このようなonNavigationItemSelected方法で上ボタンに変更:

actionBarDrawerToggle.setDrawerIndicatorEnabled(false); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

アップボタンがうまく表示されますが、まだ効果はありません。

ボタンをクリックしたときにスタック内の前のフラグメントに移動したいが、そのボタンにリスナーを追加できない。

私が使用して試してみた:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == android.R.id.home) { 
     onBackPressed(); 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

が、これが呼び出されることはありません。マニフェストに親のアクティビティがないので、呼び出されていないと思います。

ありがとうございます。

答えて

0

onBackPressedを呼び出すべきではありません。私は現在のフラグメントをreplaceメソッドを使用して前のフラグメントに置き換えたようなフラグメントトランザクションメソッドを使用してフラグメント間を処理してください。コンテナは、フラグメントを含むレイアウトです。

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
transaction.replace(R.id.fragment_container, newFragment); 
    transaction.commit(); 

私はあなたに何か指示があることを願っています。

if (id == android.R.id.home) { 
    //put the code like above here. 
    return true; 
} 
+0

これは私の質問ではありません。私はフラグメント間を移動する方法を知っていますが、このコードはどこに置くべきですか?私はアクションバーの上のボタンのためのリスナーか何かがないことを意味します –

+0

私は今答えを編集しました。実際にandroid.R.id.homeはあなたが心配しているボタンに対応しています。 – Ruag

+0

私はこれを試しました、onOptionsItemSelectedは決して呼ばれません –

関連する問題