Hong
Hong

Reputation: 18501

How can a button get the focus?

There are quite a few posts touching this topic. I thought I should ask this simple question hoping to clarify this.

I am unable to achieve setting the focus on a button. I know I probably miss something fundamental. Here is the simple layout:

<?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>

The following is the simple code in onCreate():

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

It simply does not work (i.e. the button does not get the focus).

Any correction of my error or misunderstanding will be greatly appreciated.

Upvotes: 17

Views: 42923

Answers (1)

ρяσѕρєя K
ρяσѕρєя K

Reputation: 132972

update your code:

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

Upvotes: 41

Related Questions