2012-01-21 9 views
26

現在、Androidアプリで作業しています。アクションバーのアプリアイコンを使用して、「ホーム」アクティビティに移動したいと考えています。 thisページで、onOptionsItemSelectedを追加し、ID android.R.id.homeを探してください。アプリアイコンをクリックしてもonOptionsItemSelected()が発生しません

これは、自分のアクティビティで実装したコードで、アプリアイコンを押してHomeActivityに戻るコードです。

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

ただし、何も起こりません。デバッグすると、アイコンをクリックしてもonOptionsItemSelected()が発生しないことがわかります。どこかのアイコンで何かをしなければならないのですか?今のところ、それはすべてのデフォルトですが、ちょうどこの年以降APIレベル14をターゲットパッケージの場合AndroidManifest.xml

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
+0

に役立ちますので、あなたがあなたのsecondActivityにそのコードを配置する必要があり

これが偽の .. .. は、私は今まで応答試してみましたオプションメニューを持つアクティビティのアクションバーアイコンに移動します。一時的にオプションメニューを追加し、表示される動作が変更されるかどうかを確認します。 – CommonsWare

+0

また、['FLAG_ACTIVITY_SINGLE_TOP'というアクティビティの再開を避けるフラグを渡すことを検討してください(http://stackoverflow.com/a/18658364/356895)。 – JJD

+2

私の問題は 'onOptionsItemSelected'でした。' android.R.id.home'の代わりに 'R.id.home'を使用していました。 – mbwasi

答えて

40

で、次を追加し、あなたのonCreateでsetHomeButtonEnabled()

を呼び出すことにより、ホームボタンを有効にする必要があります。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
    getActionBar().setHomeButtonEnabled(true); 
} 
+4

ActionBarSherlockを使用している人にもこれを追加します。 'getSupportActionBar()。setHomeButtonEnabled(true);' – euniceadu

4

あなたがAndroidの新しいサポート・アクションバー(AppCompat)を使用する場合は、両方の呼び出しを行う必要があります。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
    getActionBar().setHomeButtonEnabled(true); 
} 
getSupportActionBar().setHomeButtonEnabled(true); 
+2

getActionBar()は、AppCompatでnullを返します。 – bk138

0

同じ問題があるかどうかわかりません。

しかし、私はその問題にあったと今では解決..

あなたはHomeActivityで

case android.R.id.home: 
    Intent intent = new Intent(this, HomeActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    return true; 

を追加するには? secondActivity上のホームボタンは、ないHomeActivity

case android.R.id.home: 
    NavUtils.navigateUpFromSameTask(this); 
    true; 

希望これはあなた

関連する問題