新しいアップデートで、GoogleはAPIレベル7+でActionBarをサポートする新しいAPIサポートライブラリをリリースしました。「ActionBarActivity」メニューが表示されていないandroid.support.v7
私はこのアップデートまでActionBarSherlockを使用して、私はメニューをロードするためのコードを書いた:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
return true;
}
とメニューファイル:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/item_menu_ok" android:icon="@drawable/ic_action_ok"
android:title="@string/ok" android:showAsAction="always"></item>
<item android:id="@+id/item_menu_cancel" android:icon="@drawable/ic_action_cancel"
android:title="@string/cancel" android:showAsAction="always"></item>
</menu>
アクションバー上のメニューボタンを設定します。このコードはActionBarSherlockで完全に機能しました。しかし、アクションバーを新しいサポートライブラリに変更したとき、ボタンはアクションバーに表示されません。たとえそれがandroid:showAsAction="always"
に設定されていても。そして、コードをデバッグすると、関数menu.getSize()
が2を返し、それは正しいですが、ボタンは表示されません。
ボタンが新しいサポートライブラリに表示されないのはなぜですか?
さて、問題は 'xmlns:yourapp =" http://schemas.android.com/apk/res-auto "'でした。これはSupport v7の変更ですか?原因は 'ActionBarSherlock'です。私の古いコードは完全に動作しました。 – nrofis
@nrofis:AppCompatがなぜActionBarSherlockの方法で' android:showAsAction'を使用できないのか分かりません。 – CommonsWare
ありがとう、これは私が間に合うように管理された、小さく奇妙な変化です! –