How can a button get the focus?

2019-02-11 23:22发布

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.

1条回答
女痞
2楼-- · 2019-02-11 23:54

update your code:

        Button button = (Button)findViewById(R.id.button1);
        button.setFocusable(true);
        button.setFocusableInTouchMode(true);///add this line
        button.requestFocus();
        button.setText("Debug"); 
查看更多
登录 后发表回答