2012-12-04 15 views
5

AndroidのAPIレベル15でactionBar互換性に問題があります。上のボタンはこのAPIレベルでうまく動作しませんAPI 15のActionBar互換性問題

私はandroid-sdkフォルダにある "actionbarcompat"というサンプルプロジェクトを使用していますので、すべてのクラスをインポートして、すべてのアクティビティをActionBarActivityで拡張します。また、私はすべての私の活動のためのマニフェスト内のコードのこの部分を追加します。

<activity 
    android:name="fr.appsolute.rescue.MyActivity" 
    android:label="@string/title_activity_info" 
    android:parentActivityName=".MainActivity" 
    android:screenOrientation="portrait" > 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value=".MainActivity" /> 
</activity> 

と私のActionBarActivityで:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // TODO Auto-generated method stub 
    switch(item.getItemId()){ 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

この許可ユーザーをする(アプリのアイコン付き)アップボタンをタッチしますMainActivityに戻る

このコードはAndroid 2.3.3と4.2でうまくいきますが、4.0.1では動作しません。その理由はわかりません。ユーザーが上ボタンに触れると、何も起こりません。

ありがとうございました。

PS:私は外部のライブラリを使用することはできません、私はネイティブコードを使用する必要があり

+1

このサンプルは推奨されていません。 ActionbarSherlockを使用してください。 – rciovati

+0

ありがとう@rciovati、ActionbarSherlockはとてもうまく動作します –

答えて

0

ActionBarSherlockを使用して解決しました

0

それが機能しない理由わかりません。 API15でのみ失敗するのは不思議です。

NavUtils.navigateUpFromSameTask(this)の代わりにfinish()を呼び出すことができます。これにより、現在のアクティビティが閉じられ、スタック内の前のアクティビティに移動します。それはあなたに同じ望ましい結果を与えるかもしれません。