2

私はAndroidに少し慣れていませんが、ナビゲーションにTabsを使用するアプリを作成しており、FragmentsTabsを使用するためのライブラリとしてActionBarSherlockを使用しています。タブを正常に作成します:)!これが私がそれをした方法です:

public class Main extends SherlockFragmentActivity {


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ActionBar bar = getSupportActionBar();
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    ActionBar.Tab tab1 = bar.newTab();
    ActionBar.Tab tab2 = bar.newTab();
    tab1.setText("HOW IT WORKS");
    tab2.setText("CURRENT POSITION");
    tab1.setTabListener(new MyTabListener());
    tab2.setTabListener(new MyTabListener());
    bar.addTab(tab1);
    bar.addTab(tab2);

}

そして、タブ間のコンテンツ置換を処理するTabListenerがあり、これは正常に機能しています。しかし、私の質問は、タブができたので、どうすればOptionsMenuを追加できますか?アクションバーにタブを追加していることは理解していますが、アプリの設定にOptionMenuを追加する必要があります。したがって、次の例のようになります。

上部にOptionMenuがあるタブナビゲーションの画像

ご覧のとおり、タブナビゲーションがありますが、上部にロゴとOptionsMenuが表示されます。すでに実装されているタブでそれを行う方法がわからないので、通常の実装として実行しようとしました。 OptionsMenuとpublic boolean onCreateOptionsMenu(Menu menu)アクティビティ内に追加すると、メニューが膨らみますが、このエラーが発生します。

- Cannot override the final method from SherlockFragmentActivity
- overrides 
 com.actionbarsherlock.app.SherlockFragmentActivity.onCreateOptionsMenu

これがアプリのスクリーンショットで、私を理解できるようになっています。

タブ付きのMyAppですが、optionsMenuを配置する必要があります

4

1 に答える 1

0

オーバーライドエラーは、インポートが標準のAndroidメニュー用であり、ABSメニュー用ではないことが原因である可能性があります。

インポートをチェックして、onCreateOptionsMenu(Menu menu)に基づいているcom.actionbarsherlock.view.Menu(ではないandroid.view.MenuItem)ことを確認します。

于 2012-11-29T18:30:41.697 に答える