2

每当我在我的 android 应用程序中有一个 EditText 字段时,只要 Activity 启动(though the keyboard doesn't pop up),它就会以闪烁的光标突出显示以供输入。我怎样才能禁用它?

4

2 回答 2

10

EditText 和 ListView在触摸模式下是可聚焦的,因此当您通过点击其图标(使您进入触摸模式)启动应用程序时,应用程序中的第一个可能会获得焦点。如果您通过使用方向键(使您脱离触摸模式)进入您的应用程序,那么第一个 Button、Spinner、EditText 或 ListView 将获得焦点,因为它们都是可聚焦的。

当您的应用程序启动时,我不会过于关注焦点所在的视图,但如果您真的不能忍受处理焦点的默认方式,您可以尝试将焦点赋予 TextView,因为它看起来并没有什么不同它是焦点。请记住,它通常在触摸模式下不可聚焦,因此您需要在请求 focus之前启用它。由于这有点 hacky,其他人(包括我自己)会警告你不要走这条路,并可能鼓励你接受正常的行为

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

PS:您可能还想查看这个其他 SO 问题,因为它与您的几乎相同。

于 2010-06-01T22:49:17.070 回答
0

您可以调用 setFocusable(false) 来避免这种情况。但是如果它稍后应该成为焦点,那么也许你必须稍后再调用 setFocusable(true) 。

于 2010-05-09T17:51:39.600 回答