プロジェクトに ActionBarSherlock を実装しようとしています。メニュー/アクション項目をアクション バーに追加することは 2.1 では機能しますが、nexus4 では機能せず、4.0.3 エミュレーターでも機能しません。問題は、関数 onCreateOptionsMenu(Menu menu)
がデバイスでは呼び出されず、2.1 で呼び出されるため、携帯電話のアクション バーにアクション アイテムが表示されないことです。
- プロジェクトにライブラリとして ActionBarSherlock を含めました。
- アプリケーションのマニフェスト ファイルに適切なテーマを設定しました。
- SherlockActivity でアクティビティ クラスを拡張しました。
- sherlock ライブラリから適切なクラスをオーバーライドしました (これまでのところ、そうでない場合、メニューは 2.1 のアクション バーにも表示されませんでした)。
以下は、テーマが設定されているマニフェストの一部です。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >
以下は menu.xml ファイルです。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_item_call"
android:showAsAction="always"
android:title="Call"/>
<item
android:id="@+id/menu_item_share"
android:showAsAction="always"
android:title="Share"/>
<item
android:id="@+id/menu_item_save"
android:showAsAction="always"
android:title="Save"/>
</menu>
以下は、活動の関連部分です。
//other imports
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.Window;
public class SelectCategories extends SherlockActivity implements
OnClickListener {
//other code
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
//return true; also has no effect
}
}
私はこの問題を解決しようとしてきましたが、数時間経ちましたが解決できませんでした。私を助けてください。前もって感謝します。