1
 <Spinner
    android:id="@+id/spinner1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/editText2"
    android:layout_marginTop="22dp"
    android:entries="@array/categorylist"
    android:prompt="@string/category" />

上記の形式でスピナーを作成しました!

final Spinner spnr= (Spinner)findViewById(R.id.spinner1);
    String category=spnr.getSelectedItem().toString();

上記の形式で値を取得することにより、スピナー値をdbにプッシュしました。

値がdbから取得されたとき。スピナーは特定の値に従って設定する必要があります...どのようにアイデアplsを実装できますか?

4

2 に答える 2

1

setSelection()を使用すると、最初の選択ではなく、スピナーに特定の選択を設定できます(デフォルト)。今あなたの質問はあなたが持っている価値からどのように位置を得るかということでしょう。これを行うためのコードは次のとおりです。

String yourString = "some value"; //the value you want the position for

ArrayAdapter yourAdap = (ArrayAdapter) mySpinner.getAdapter(); //cast to an ArrayAdapter

int spinnerPosition = yourAdap.getPosition(yourString);

//set the default according to value
spnr.setSelection(spinnerPosition);
于 2012-09-27T19:47:34.530 に答える
1

これは、Spinnerのエントリとして設定されているアイテムの配列を格納する場合にのみ可能です。スピナーで選択したアイテムの位置を設定できます。したがって、データベースからクエリするアイテムのインデックスを見つける必要があります。categorylistのStringArrayをロードし、配列を反復処理して、各アイテムをデータベースからフェッチされたアイテムと比較します。次に、見つかったアイテムのインデックスをスピナーで選択したアイテムとして設定します。

    String[] list = getResources().getStringArray(R.array.categorylist);
    int index = 0;
    for(String item : list) {
        if(item.equals("your_item")){
            break;
        }
        index++;
    }
    spinner.setSelection(index);
于 2012-09-27T19:26:27.903 に答える