スピナーの選択を位置ではなく値で設定する
ビューを更新し、スピナーの選択がデータベースに保存されている値と一致する必要がある場合、従来のアプローチは、アダプターのindexOfメソッドを使用して対応する位置を特定することです。ただし、アダプターがそのようなメソッドを提供していないため、このアプローチでは障害が発生します。
この課題を克服するには、より適切なアプローチは ArrayAdapter の getPosition メソッドを利用することです。このメソッドを適切な ArrayAdapter と組み合わせると、特定の値に関連付けられた位置を識別できるようになります。
mSpinner という名前のスピナーに「ある値」の値が含まれているシナリオを考えてみましょう。その位置を見つけて比較するには、次の手順に従います:
リソース ファイル R.array.select_state から ArrayAdapter を作成します:
<code class="java">ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);</code>
スピナーのアダプターと DropDownViewResource を設定します:
<code class="java">adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mSpinner.setAdapter(adapter);</code>
次に、比較する値 (compareValue) が null でない場合:
<code class="java">if (compareValue != null) { int spinnerPosition = adapter.getPosition(compareValue); mSpinner.setSelection(spinnerPosition); }</code>
このアプローチを採用することで、データベースに格納されている値に基づいてスピナーの選択を正確に設定できます。ビューの更新中にシームレスなユーザー エクスペリエンスを提供します。
以上がAndroid でスピナーの選択を位置ではなく値で設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。