質問

Android-Support-V4.jarライブラリを使用するプロジェクトのICSのフラグメントに表示するオプションメニューを取得することはできません。 Galaxy Nexusの携帯電話でテストしています。

アクションバーを使用しておらず、アプリを2.2+互換性のあるものにする必要があります。 ICSのアクティビティのオプションメニューは表示されていません(fragmentActivityはoncreateoptionsmenuをサポートしていません)

Androidの以前のバージョンでメニューを動作させることができます - オプションメニューを有効にするための正しいフレームワークがすべてあります(以下のように)が、ICSには何も表示されません。コードを介してステップするとき、OnCreateOptionsmenuは呼び出されません。誰かが修正を提案できますか?

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class SuperFragment extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.display_options_actions, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.menu_sign_in:
                break;
            case R.id.menu_sign_out:
                break;
        }
        return true;
    }
    // ...
}

マニフェストファイルのターゲットOSバージョン:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14"/>
役に立ちましたか?

解決

削除 android:targetSdkVersion="14" Manifestからオプションメニューボタンを再度有効にします。

これは、私がテーマを持っていたからです @android:style/Theme.Black.NoTitleBar 私のマニフェストで指定-14のAndroid:TargetSDKversionを使用タイトル、およびアクションバー。

アクションバーを削除できます, 、これが問題を修正するかどうかはわかりませんが、バージョン2.2-4に互換性があるように、まだ機能していないためです。

他のヒント

Android:TargetSdkversionを「14」から「10」(11以下)に変更するだけで、この問題は解決されます。

<uses-sdk android:minSdkVersion="3" 
      android:targetSdkVersion="10" />

Android CDDによると、オプションメニューを表示しないという新しい動作のカットオフはTargetSDKversion> 10です。オプションは、TargetSDKversion <= 10でレガシーモードでアプリを実行するか、アプリを新しいガイドラインに適応させることです(例:Add Addアプリのメニューボタンまたはアクションバーを使用します)。 TargetSdkversionを増やすために、ターゲットビルドバージョン(Eclipseのプロジェクトプロパティ)を増やす必要はないことに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top