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

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

TextView myTextView = (TextView) findViewById(R.id.my_text_vew); myTextView.setFocusable(true); myTextView.setOnClickListener(this); myTextView.requestFocus(); 

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

有人可以帮忙吗?

谢谢。

Solutions Collecting From Web of "如何在Activity启动时将焦点设置在TextView上?"

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

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

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

 android:focusableInTouchMode="true" 

要请求焦点到TextView,您需要设置focusable="true"focusableInTouchMode="true" ,如下所示:

     

在布局中添加TextView属性

 android:focusable="false" 

这对我有用。

用这个:

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

这将重点关注EditText并将其放在TextView上。

您可以将焦点设置为活动的xml中的任何窗口小部件或TextView。 只需在TextView结束前添加requestFocus即可