0

ここで述べた ように、アクションバーにドロップダウンアイテムを作成しました アクションバー にドロップダウンアイテムを追加する方法

<item
android:id="@+id/menuSpinner"
android:showAsAction="ifRoom"
android:actionLayout="@layout/options"  />

および options.xml

<?xml version="1.0" encoding="utf-8"?>
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/my_array" />

およびstrings.xmlの配列

<string-array name="my_array">
    <item>ONE</item>
    <item>TWO</item>
    <item>THREE</item>
</string-array>

アクティビティではすべて問題ないようです。

onClickメッセージを取得するにはどうすればよいですか、またはアクションバーでどのアイテムが選択されている(表示されている)かを知る方法を教えてください。このコードに何かあるかもしれません..?

if (item.getItemId() == R.id.menuSpinner) {
                      ...
            }

UPD:今ではこれをやった

  1. options.xml でスピナーに ID を設定します

  2. コードでこれを書いた

    スピナー sp = (スピナー) findViewById(R.id.spinner_menu);

    if (sp.getSelectedItemId()==0) {

    ...

    }

ユーザーのスピナー クリックにすぐに対応する必要がないため、これは mi に適しています。

4

3 に答える 3

2

これを試して。

  1. スピナーリストに項目を追加
  2. onNavigationItemSelected() を実装して、アイテムの位置とアイテム ID をそれぞれ取得します。

例:

@オーバーライド

public boolean onNavigationItemSelected(int itemPosition, long itemId) {
    switch (itemPosition) {
    case 0:
        Toast.makeText(getApplicationContext(), "location 1",
                Toast.LENGTH_SHORT).show();

    return true;
    case 1:
        Toast.makeText(getApplicationContext(), "location 2",
                Toast.LENGTH_SHORT).

    default:
        Toast.makeText(getApplicationContext(), "location 4",
                Toast.LENGTH_SHORT).show();
    }
    return false;
}
于 2013-12-01T01:35:42.857 に答える
0

これを単にサブメニューとして使用したい場合は、サブメニュー API を見ましたか?

これに関する詳細については、この質問を参照してください。元の質問には、最初にメニュー xml からこれを行う方法の例があり、次にデータ ソースからメニュー項目を動的に生成する方法について詳しく説明します。提示する静的サブメニュー項目のみがある場合 (質問でそれらを定義する文字列配列があるため、そうであるように思われます)、最初のメニュー xml 定義で停止し、サブメニュー項目のクリックをあたかも処理することができるはずです。それらは他のメニュー項目でした。

于 2012-11-23T22:47:58.583 に答える