Android 如何在活动开始时设置文本视图的焦点?

Android 如何在活动开始时设置文本视图的焦点?,android,Android,“我的活动”中有一个EditText和一个TextView。我想在活动开始时将焦点设置在文本视图上。我使用了以下代码: TextView myTextView = (TextView) findViewById(R.id.my_text_vew); myTextView.setFocusable(true); myTextView.setOnClickListener(this); myTextView.requestFocus(); 但是代码不起作用。活动开始

“我的活动”中有一个EditText和一个TextView。我想在活动开始时将焦点设置在文本视图上。我使用了以下代码:

    TextView myTextView = (TextView) findViewById(R.id.my_text_vew);
    myTextView.setFocusable(true);
    myTextView.setOnClickListener(this);
    myTextView.requestFocus();
但是代码不起作用。活动开始时,EditText始终接收焦点

有人能帮忙吗


谢谢。

当您使用触摸屏启动活动时,这是意料之中的。在“触摸模式”下,只有几个视图(EditText和ListView)可以接收焦点。如果使用轨迹球启动应用程序,您将在TextView上看到焦点。你看到的是正确的预期结果。

我现在遇到了你的问题。也许两年后你找到了解决办法。但我在这里写这篇文章是为了其他人,他们将来会遇到这个问题。您只需转到
AndroidManifest.xml
,找到您想要此行为的
活动
,然后添加此
android:windowSoftInputMode=“stateHidden”
。因此,在
活动开始时
将不会显示键盘,直到您触摸
编辑文本
对象。

如果有人仍然想知道,您可以在布局xml中使用以下内容,使文本视图在触摸模式下可聚焦:

android:focusableInTouchMode="true"

在布局中添加TextView属性

android:focusable="false"

这对我来说很有用。

您可以从活动的xml将焦点设置为任何小部件或文本视图。只需在文本视图结束之前添加requestFocus

<AutoCompleteTextView
        android:id="@+id/autoCompleteTextView2"
        android:layout_width="470dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="90dp"
        android:layout_toEndOf="@+id/textView2"
        android:ems="10"
        android:textColor="#455A64"
        android:textColorHint="#455A64"
        android:textSize="27sp">

        <requestFocus />
    </AutoCompleteTextView>

为了向文本视图请求焦点,您需要如下设置
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>

使用以下方法:

EditText mEditText = (EditText) findViewById(R.id.edit_text);
TextView myTextView = (TextView) findViewById(R.id.my_text_vew);

mEditText.setFocusable(false);  
myTextView.setFocusable(true);

这将使EditText的焦点离开,并将其置于文本视图上

如何做相反的事情。例如,我有一个数字editfield作为第一个ui对象,并始终接收焦点和键盘弹出窗口。我不想让键盘弹出。所以,我需要将文本视图设置为在触摸模式下可聚焦?