2013-08-05 23 views
5

Odaklamayı bir düğüme nasıl ayarlayabilirim, ancak setFocusableInTouchMode öğesini true değerine ayarlamayın?Odağı bir düğmenin üzerine getirme

button.requestFocus(); 

basitçe çalışmaz Yani:

Öncelikle bu çalıştı. Daha sonra bunu denedim: Sorun şu ki, düğmeyi vurgular. Dokunma modunda düğmenin vurgulanmasını istemiyorum. Sadece kullanıcı enter tuşu veya sekme tuşuna bastığında düğmenin seçilmesini istiyorum.

Netleştirmek gerekirse, sadece dokunma modunda değilken ilk düğmenin odakla başlamasını istiyorum. Sanırım

cevap

0

Bu mükemmel sorunu çözer:

layout.getViewTreeObserver().addOnTouchModeChangeListener(new ViewTreeObserver.OnTouchModeChangeListener() 
{ 
    public void onTouchModeChanged(boolean isInTouchMode) 
    { 
     if (!isInTouchMode) 
      button.requestFocus(); 
    } 
}); 
1

, bu istiyorum: Eğer buna istemiyorsanız

button.setOnKeyListener(new OnKeyListener() { 

      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       switch (keyCode) { 
       case KeyEvent.KEYCODE_ENTER: 
        // HIT THE ENTER KEY 
        break; 
       case KeyEvent.KEYCODE_TAB: 
        // HIT THE TAB KEY 
        break; 
       } 
       return false; 
      } 
     }); 

, net olabilir? İngilizcem için üzgünüm.

+0

odağı alabilir birkaç düğme bulunur, çünkü bu işe yaramaz. Sadece odakla başlamak için ilk düğmeyi istiyorum. Odağı bir değişkende saklayabilirim ve giriş anahtarını ve odağı değiştirebilecek tüm tuşların tüm tuşlarını geçersiz kılabilirim. Odağı işlemek için daha iyi bir yol olmalı. –