2010-05-09 239 views
2

每当我在我的android应用程序中有一个EditText字段时,只要活动开始(though the keyboard doesn't pop up),就会用闪烁的光标进行高亮显示。我如何禁用此功能?EditText默认选择?

回答

8

EditText和ListView都是focusable in touch mode,所以当你通过点击它的图标(使你进入触摸模式)来启动你的应用程序时,你的应用程序中的第一个可能会变得焦点。如果您使用D-pad(将您移出触摸模式)进入了您的应用程序,那么第一个Button,Spinner,EditText或ListView将会获得焦点,因为它们都是可聚焦的。

当你的应用程序启动时,我不会太注意视图的焦点,但如果你真的不能忍受the default way of handling focus,你可以尝试给TextView赋予焦点,因为它看起来没有什么不同焦点。请记住,它通常不能在触摸模式下对焦,所以您需要requesting focus之前的enable it。由于这有点冒失,其他人(包括我自己)会提醒你不要走这条路,并且可能会鼓励你接受the normal behavior

View tv = findViewById(R.id.MyTextView); 
    tv.setFocusableInTouchMode(true); 
    tv.requestFocus(); 

PS:你可能也想看看这个other SO question,因为它几乎等同于你的。

+0

谢谢。这主要是一个审美的事情。它将重点从其他元素中吸取出来。我会尝试你的建议。 – GuyNoir 2010-06-02 15:58:39

0

你可以调用setFocusable(false)来避免这种情况。但是,如果它晚些时候应该成为焦点,那么稍后可能需要再次调用setFocusable(true)。

+0

我仍然希望它是可以聚焦的,只是在活动打开时没有默认聚焦。 – GuyNoir 2010-05-09 18:13:57