Menetapkan Pemilihan Spinner mengikut Nilai, Bukan Kedudukan
Apabila mengemas kini paparan dan pemilihan Spinner mesti sepadan dengan nilai yang disimpan dalam pangkalan data, pendekatan konvensional adalah untuk mencari kedudukan yang sepadan menggunakan kaedah indexOf pada Adapter. Walau bagaimanapun, pendekatan ini menghadapi sekatan jalan kerana Penyesuai tidak menyediakan kaedah sedemikian.
Untuk mengatasi cabaran ini, pendekatan yang lebih sesuai ialah menggunakan kaedah getPosition ArrayAdapter. Kaedah ini, apabila dipasangkan dengan ArrayAdapter yang sesuai, membolehkan pengecaman kedudukan yang dikaitkan dengan nilai tertentu.
Pertimbangkan senario di mana Spinner bernama mSpinner mengandungi nilai "beberapa nilai". Untuk mencari dan membandingkan kedudukannya, ikuti langkah berikut:
Buat ArrayAdapter daripada fail sumber R.array.select_state:
<code class="java">ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);</code>
Tetapkan Penyesuai Spinner dan DropDownViewResource:
<code class="java">adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mSpinner.setAdapter(adapter);</code>
Seterusnya, jika nilai yang hendak dibandingkan (compareValue) bukan batal:
<code class="java">if (compareValue != null) { int spinnerPosition = adapter.getPosition(compareValue); mSpinner.setSelection(spinnerPosition); }</code>
Dengan menggunakan pendekatan ini, pemilihan Spinner boleh ditetapkan dengan tepat berdasarkan nilai yang disimpan dalam pangkalan data, menyediakan pengalaman pengguna yang lancar semasa kemas kini paparan.
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Pemilihan Spinner mengikut Nilai, Bukan Kedudukan dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!