Cara Mengekalkan Item ListView Diserlahkan Selepas Pemilihan dalam Android
Dalam Android, mengekalkan keadaan item ListView yang dipilih boleh meningkatkan pengalaman pengguna dengan menyediakan penunjuk visual yang jelas bagi pemilihan semasa. Walau bagaimanapun, kadangkala pembangun menghadapi masalah apabila item yang dipilih kehilangan penyerlahannya selepas peristiwa tertentu, seperti menatal atau interaksi selanjutnya dengan ListView.
Cabaran
Seorang pembangun baru-baru ini menghadapi masalah ini semasa bekerja dengan dua ListViews dalam susun atur XML. Satu ListView memaparkan senarai pelanggan, dan satu lagi menunjukkan maklumat terperinci tentang klien yang dipilih. Apabila pelanggan dipilih dalam ListView pertama, pembangun mahu mengekalkan keadaan yang diserlahkan sambil mengemas kini ListView kedua dengan butiran yang sepadan. Walau bagaimanapun, penonjolan itu tidak dipelihara.
Penyelesaian
Untuk menangani isu ini, terdapat beberapa pendekatan:
1. Menggunakan Atribut XML:
Dalam reka letak XML, gunakan atribut berikut pada ListView yang perlu mengekalkan penyerlahan item yang dipilih:
android:choiceMode="singleChoice" android:listSelector="@drawable/list_selector"
Ganti @drawable/list_selector dengan tersuai boleh lukis pemilih yang menentukan warna serlahan yang diingini.
2. Pendekatan Programatik:
Sebagai alternatif, gunakan kod berikut untuk menetapkan mod pemilihan ListView dan warna serlahkan secara pengaturcaraan:
listView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); listView.setSelector(getResources().getDrawable(R.drawable.list_selector));
3. Elakkan Manipulasi Paparan:
Adalah penting untuk ambil perhatian bahawa memanipulasi pandangan secara langsung melalui pendengar acara boleh menjadi tidak boleh dipercayai kerana sifat pandangan sementara dalam ListView. Perubahan yang dibuat untuk melihat latar belakang mungkin tidak berterusan selepas menatal atau peristiwa lain berlaku.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Item ListView Diserlahkan Selepas Pemilihan dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!