7

見つかった開発者ガイドを使用しhereて、アイコンをホーム画面に戻そうとしています。onOptionsItemSelected()現在、これを行うボタンがあり、メソッドにコードをコピーして貼り付けました。ただし、アイコンをタップしても何も起こりません。これは ActionBar と ActionBarSherlock の違いですか?

これは例として与えられたコードです:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
    case android.R.id.home:
        // app icon in action bar clicked; go home
        Intent intent = new Intent(this, HomeActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        return true;
    default:
        return super.onOptionsItemSelected(item);
}
}

これは私が使用しているコードです:

public boolean onOptionsItemSelected( MenuItem item ) {
    switch( item.getItemId() ) {
    case R.id.mainTopBluetoothState:
        Toast.makeText( this, "BluetoothState", Toast.LENGTH_SHORT ).show();
        return true;
    case R.id.mainTopAppState:
        Toast.makeText( this,  "BluetoothState",  Toast.LENGTH_SHORT ).show();
        return true;
    case android.R.id.home:
        Log.i( "In Home", "In Home" );
        killToasts();
        dispatchKeyEvent(new KeyEvent( KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK ));
        finish();
        return true;
    }
    return super.onOptionsItemSelected( item );
}

アイコンをタップしても何も起こりません。コード内のLog呼び出しは、どちらにも表示されませんLogCat

4

1 に答える 1

6

おそらく、ABS アクティビティ ロゴをクリック可能にしていません。これを追加onCreate()

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

また、まだ行っていない場合は、Ancestral Navigation の実装を読んで、適切にナビゲートできるようにします(ABS の使用は無視しgetActionBar()てください。ABS は使用していません。これが実際の Android API アクション バー メソッドです)。

于 2013-01-23T20:00:45.393 に答える