【发布时间】:2011-02-17 10:02:37
【问题描述】:
每当我的 android 应用程序中有一个 EditText 字段时,只要 Activity 启动,它就会以闪烁的光标突出显示以供输入 (though the keyboard doesn't pop up)。如何禁用此功能?
【问题讨论】:
标签: java android android-edittext
每当我的 android 应用程序中有一个 EditText 字段时,只要 Activity 启动,它就会以闪烁的光标突出显示以供输入 (though the keyboard doesn't pop up)。如何禁用此功能?
【问题讨论】:
标签: java android android-edittext
EditText 和 ListView 是focusable in touch mode,因此当您通过点击其图标(使您进入触摸模式)启动应用程序时,您的应用程序中的第一个可能会获得焦点。如果您使用方向键(使您脱离触摸模式)进入您的应用程序,那么第一个 Button、Spinner、EditText 或 ListView 将获得焦点,因为它们都是可聚焦的。
当您的应用程序启动时,我不会过于关注焦点所在的视图,但如果您真的无法忍受the default way of handling focus,您可以尝试将焦点放在 TextView 上,因为它看起来并没有什么不同它是焦点。请记住,它在触摸模式下通常无法聚焦,因此您需要在enable it 之前requesting focus。由于这有点 hacky,其他人(包括我自己)会警告你不要走这条路,并可能鼓励你接受the normal behavior。
View tv = findViewById(R.id.MyTextView);
tv.setFocusableInTouchMode(true);
tv.requestFocus();
PS:您可能还想查看此other SO question,因为它与您的几乎相同。
【讨论】:
您可以调用 setFocusable(false) 来避免这种情况。但如果它稍后应该成为焦点,那么您可能需要稍后再次调用 setFocusable(true)。
【讨论】: