質問
Android Studio Template の Navigation Drawer を使用しています。「ハンバーガー」ボタンの一部のフラグメントでUP ボタン (矢印)を使用したいと考えています。私は使用します。AppCompatActivity
このコードを使用して、UP ボタンの矢印を表示します。
public void UseUpButton(boolean value) {
ActionBar actionBar = getSupportActionBar();
if (value) {
actionBar.setDisplayHomeAsUpEnabled(false);
toggle.setDrawerIndicatorEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
} else {
toggle.setDrawerIndicatorEnabled(true);
}
}
試したバリアント:
しかし、私はこのボタンをクリックすることはできません。私はいくつかの方法を試しました:
使用するonOptionsItemSelected
public boolean onOptionsItemSelected(MenuItem item) {
Log.d("WTF", "menu");
switch (item.getItemId())
{
case android.R.id.home:
getFragmentManager().popBackStack();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
に追加getSupportActionBar().setHomeButtonEnabled(true);
しましたActivity::onCreate
がonOptionsItemSelected
、上ボタンを押しても呼び出されず、メニュー項目を押しても正しく動作します。
ActionBarToggle OnClickListener を使用する
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open,
R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
toggle.setToolbarNavigationClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
}
});
ただし、このメソッドは Up ボタンを押しても呼び出されません。
結論:
では、Up ボタンのプレス イベントをキャッチするにはどうすればよいでしょうか。