Rumah  >  Artikel  >  Java  >  Bagaimana untuk Menetapkan Item Terpilih secara Pengaturcaraan dalam Pemintal Android mengikut Nilai?

Bagaimana untuk Menetapkan Item Terpilih secara Pengaturcaraan dalam Pemintal Android mengikut Nilai?

Susan Sarandon
Susan Sarandonasal
2024-10-31 17:30:02793semak imbas

How to Programmatically Set the Selected Item in an Android Spinner by Value?

Menetapkan Item Terpilih Spinner mengikut Nilai

Apabila mengemas kini paparan, anda mungkin menghadapi keperluan untuk prapilih nilai yang disimpan dalam pangkalan data untuk sebuah Spinner. Pada mulanya, anda mungkin mencuba penyelesaian seperti:

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

Walau bagaimanapun, pendekatan ini menghadapi sekatan jalan kerana antara muka Penyesuai tidak menyediakan kaedah indexOf.

Penyelesaian

Untuk mencari dan membandingkan kedudukan nilai tertentu dalam Spinner anda, ikut langkah berikut:

  1. Tentukan nilai perbandingan, contohnya: String compareValue = "sesetengah nilai".
  2. Buat ArrayAdapter menggunakan sumber yang diperlukan:

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
  3. Tetapkan ArrayAdapter sebagai Penyesuai untuk Spinner anda:

    mSpinner.setAdapter(adapter);
  4. Gunakan kaedah getPosition untuk menentukan kedudukan nilai perbandingan anda dalam ArrayAdapter:

    if (compareValue != null) {
     int spinnerPosition = adapter.getPosition(compareValue);
     mSpinner.setSelection(spinnerPosition);
    }

    Dengan mengikuti langkah-langkah ini, anda boleh prapilih nilai secara berkesan dalam Spinner berdasarkan nilainya. daripada kedudukannya dalam senarai.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Item Terpilih secara Pengaturcaraan dalam Pemintal Android mengikut Nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn