2012-03-17 33 views
15

Bu konuya dokunduğunuz birkaç mesaj var. Bunu açıklığa kavuşturmayı umarak bu basit soruyu sormam gerektiğini düşündüm.Bir düğme odağı nasıl alabilir?

Odağı bir düğmeyle ayarlamayı başaramıyorum. Biliyorum muhtemelen temel bir şeyi özlüyorum.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:focusable="true" /> 

</LinearLayout> 

aşağıdaki onCreate (basit kodu) olduğu: Burada basit düzenidir

 Button button = (Button)findViewById(R.id.button1); 
     button.setFocusable(true); 
     button.requestFocus(); 
     button.setText("Debug"); //Just to show the code here has been executed 

Bu sadece çalışmıyor (yani düğme odağa almaz).

Hatamın veya yanlış anlaşılmanın düzeltilmesi büyük ölçüde takdir edilecektir.

cevap

34

güncellemesi kodu:

 Button button = (Button)findViewById(R.id.button1); 
     button.setFocusable(true); 
     button.setFocusableInTouchMode(true);///add this line 
     button.requestFocus(); 
     button.setText("Debug"); 
+1

düğmesi de aksi Odak olacak ama bunu görmüyorum. Görsel odak sadece [TouchMode] 'dadır (http://android-developers.blogspot.de/2008/12/touch-mode.html) – zapl

+0

Her şeyden önce yanıt ve açıklama için teşekkür ederiz. Anlaşılan, "odak" ın belirli bir bağlamda ne anlama geldiğini anlamadım. Şimdi, bir düğmenin onu göstermeden odağı kazanmanın ne kadar yararlı olduğunu merak ediyorum. – Hong

+1

Cihazınıza bağlı bir klavye (örneğin, emülatörün sahip olduğu) veya d-pad'li bir cihaza sahip olduğunuzu varsayalım ve enter/click dpad tuşlarına basın. Odak noktası ne olursa olsun. Uygulamayı sadece parmaklarınızla kullanırsanız, genellikle odak noktasını göz ardı edebilirsiniz. – zapl