Saya suka UI saya yang intuitif; setiap layar harus secara alami dan tidak mencolok memandu pengguna ke langkah berikutnya dalam aplikasi. Kecuali itu, saya berusaha untuk membuat segala sesuatunya membingungkan dan membingungkan mungkin.
Hanya bercanda :-)
Saya punya tiga TableRows, masing-masing berisi kontrol EditText read-only dan non-focusable dan kemudian tombol di sebelah kanannya. Setiap tombol memulai aktivitas yang sama tetapi dengan argumen yang berbeda. Pengguna membuat pilihan di sana dan sub kegiatan selesai, mengisi yang sesuai EditTextdengan pilihan pengguna.
Ini adalah mekanisme nilai berjenjang klasik; setiap pilihan mempersempit pilihan yang tersedia untuk pilihan berikutnya, dll. Jadi saya menonaktifkan kedua kontrol pada setiap baris berikutnya sampai EditText pada baris saat ini berisi nilai.
Saya perlu melakukan satu dari dua hal, dalam urutan preferensi ini:
- Saat tombol diklik, segera hapus fokus tanpa menyetel fokus ke tombol lain
- Setel fokus ke tombol pertama saat aktivitas dimulai
Masalahnya muncul setelah sub kegiatan kembali; tombol yang diklik mempertahankan fokus.
Re: # 1 di atas - Sepertinya tidak ada removeFocus()metode, atau yang serupa
Perihal: # 2 di atas - Saya dapat menggunakan requestFocus()untuk menyetel fokus ke tombol di baris berikutnya, dan itu berfungsi setelah sub kegiatan kembali, tetapi untuk beberapa alasan itu tidak berfungsi di aktivitas induk onCreate().
Saya membutuhkan konsistensi UI di kedua arah - baik tidak ada tombol yang memiliki fokus setelah sub kegiatan selesai atau setiap tombol menerima fokus tergantung pada tempatnya di alur logika, termasuk tombol aktif pertama (dan satu-satunya) sebelum pemilihan apa pun.