Kullanıcı arayüzlerimin sezgisel olmasını seviyorum; her bir ekran, kullanıcıyı uygulamadaki bir sonraki adıma doğal ve dikkat çekmeden yönlendirmelidir. Bunun dışında işleri olabildiğince kafa karıştırıcı ve kafa karıştırıcı hale getirmeye çalışıyorum.
Şaka yapıyorum :-)
TableRowHer biri salt okunur ve odaklanılamayan bir EditText denetimi ve ardından sağında bir düğme içeren üç tane s var . Her düğme aynı aktiviteyi ancak farklı bir argümanla başlatır. Kullanıcı orada bir seçim yapar ve alt aktivite EditText, kullanıcının seçimiyle uygun olanı doldurarak biter .
Klasik basamaklı değerler mekanizmasıdır; her seçim, bir sonraki seçim vb. için mevcut seçenekleri daraltır. Bu nedenle, geçerli satırdaki Metni Düzenle bir değer içerene kadar sonraki satırların her birinde her iki kontrolü de devre dışı bırakıyorum.
Bu tercih sırasına göre iki şeyden birini yapmam gerekiyor:
- Bir düğmeye tıklandığında, odağı farklı bir düğmeye ayarlamadan hemen odağı kaldırın
- Aktivite başladığında odağı ilk düğmeye ayarlayın
Alt aktivite geri döndükten sonra problem kendini gösterir; tıklanan düğme odağı korur.
Re: # 1 yukarıda - Bir removeFocus()yöntem veya benzeri bir şey görünmüyor
Yukarıdaki Re: # 2 - requestFocus()Odağı bir sonraki satırdaki düğmeye ayarlamak için kullanabilirim ve bu, alt aktivite döndükten sonra çalışır, ancak bazı nedenlerden dolayı ana aktivitede çalışmaz onCreate().
Her iki yönde de UI tutarlılığına ihtiyacım var - ya alt etkinlik bittikten sonra hiçbir düğme odaklanmaz ya da herhangi bir seçimden önceki ilk (ve yalnızca) etkin düğme dahil olmak üzere, mantık akışındaki yerine bağlı olarak her düğme odak alır.