スピナーの選択項目を位置ではなく値で設定するにはどうすればいいですか? 質問する

スピナーの選択項目を位置ではなく値で設定するにはどうすればいいですか? 質問する

更新ビューがあり、スピナーのデータベースに保存されている値を事前に選択する必要があります。

このようなことを念頭に置いていたのですが、方法AdapterがないindexOfので行き詰まっています。

void setSpinner(String value)
{
    int pos = getSpinnerField().getAdapter().indexOf(value);
    getSpinnerField().setSelection(pos);
}

ベストアンサー1

Spinner名前がmSpinner​​ で、選択肢の 1 つとして「何らかの値」が含まれているとします。

Spinner 内の「ある値」の位置を見つけて比較するには、次のようにします。

String compareValue = "some value";
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
if (compareValue != null) {
    int spinnerPosition = adapter.getPosition(compareValue);
    mSpinner.setSelection(spinnerPosition);
}

おすすめ記事