如何在Activity启动时将焦点设置在TextView上?

use*_*239 21 android

我的Activity中有一个EditText和一个TextView.我想在Activity启动时将焦点设置在TextView上.我使用了以下代码:

    TextView myTextView = (TextView) findViewById(R.id.my_text_vew);
    myTextView.setFocusable(true);
    myTextView.setOnClickListener(this);
    myTextView.requestFocus();
Run Code Online (Sandbox Code Playgroud)

但代码不起作用.EditText始终在活动开始时获得焦点.

有人可以帮忙吗?

谢谢.

Rom*_*Guy 13

使用触摸屏启动活动时,这是预期的.在"触摸模式"下,只有几个视图(EditText和ListView)可以获得焦点.如果使用轨迹球启动应用程序,您将看到对TextView的关注.您所看到的是正确和预期的结果.


LiT*_*Tle 12

我现在遇到了你的问题.也许2年后你找到了解决方案.但是我在这里写的是将来会遇到的其他人.你唯一要做的就是去AndroidManifest.xml,找到Activity你想要这种行为,并添加它android:windowSoftInputMode="stateHidden".因此,在Activity您触摸EditText对象之前,将显示无键盘的开头.


小智 11

如果还有人想知道,您可以在布局xml中使用以下内容,使textview在触摸模式下可聚焦:

android:focusableInTouchMode="true"
Run Code Online (Sandbox Code Playgroud)


小智 7

为了请求焦点TextView的需要设置focusable="true"focusableInTouchMode="true"如下:

 <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Heading"
            android:textSize="20sp"
            android:textStyle="bold"
            android:focusable="true"
            android:focusableInTouchMode="true">
                <requestFocus />
     </TextView>
Run Code Online (Sandbox Code Playgroud)