2

私は ActionBarCompat を使用して、API 11 の下のデバイス用のアクションバーを作成しています。うまく機能し、セットアップも簡単でしたが、行き詰まっています。

アクションバーにいくつかの項目がありますが、見栄えがします。一部のアイテムは 3 つのドットの背後にあり (ifRoom)、一部は常に表示されます。

これらの項目の 1 つをクリックして新しいアクティビティを開始するにはどうすればよいですか? switch/case やその他の方法で試しましたが、アイテムを介してあるアクティビティから別のアクティビティに送信することはできませんでした。ボタン、イメージボタンから別のアクティビティに送信する方法は知っていますが、アイテムからは送信できません。

私の main.xml は次のようになります。

<item 
    android:id="@+id/add"
    android:title="Lägg till"
    android:icon="@drawable/new"    
    android:orderInCategory="1"
    budsnabben:showAsAction="always"/>

MainActivity のコードは次のようになります。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case R.id.:
        Intent intent = new Intent(this, MapActivity.class);
        this.startActivity(intent);
        break;
    case R.id.menu_item2:
        // another startActivity, this is for item with id "menu_item2"
        break;
    default:
        return super.onOptionsItemSelected(item);
    }

    return true;
}

}

問題は R.id... の場合です。Id の後、クラス マップまたはメインを取得できません。そこにはありません。

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

解決:

ジェラルドに感謝したいだけです。

string.xml に新しい文字列を作成しました。その後、main.xml のタイトルを次のように変更しました。

android:title="@string/add"

以前のようにその行をハードコーディングしたため、機能しなかったと思います:

android:title="@+id/add"

もう一度ありがとう。

4

1 に答える 1

2

アクションバーを使用 してアクティビティで使用し、メニュー レイアウトの ID とpublic boolean onOptionsItemSelected(MenuItem item) { ... }一致する switch-case を作成します。item.getItemId()その後、通常のボタンの場合と同様に適切なインテントを作成します。

于 2013-10-13T11:54:56.147 に答える