スピナーの選択を位置ではなく値で設定する
ビューを更新し、スピナーの選択がデータベースに保存されている値と一致する必要がある場合、従来のアプローチは、アダプターのindexOfメソッドを使用して対応する位置を特定することです。ただし、アダプターがそのようなメソッドを提供していないため、このアプローチでは障害が発生します。
この課題を克服するには、より適切なアプローチは ArrayAdapter の getPosition メソッドを利用することです。このメソッドを適切な ArrayAdapter と組み合わせると、特定の値に関連付けられた位置を識別できるようになります。
mSpinner という名前のスピナーに「ある値」の値が含まれるシナリオを考えてみましょう。その位置を見つけて比較するには、次の手順に従います。
リソース ファイルから ArrayAdapter を作成する R.array.select_state:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
スピナーのアダプターと DropDownViewResource を設定します:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
次に、比較対象の値(compareValue)がnullでない場合:
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
mSpinner.setSelection(spinnerPosition);
}
このアプローチを採用すると、データベースに保存されている値に基づいてスピナーの選択を正確に設定でき、ビューの更新中にシームレスなユーザー エクスペリエンスを提供できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3