【问题标题】:EditText selects by default?EditText 默认选择?
【发布时间】:2011-02-17 10:02:37
【问题描述】:

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

【问题讨论】:

    标签: java android android-edittext


    【解决方案1】:

    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,因为它与您的几乎相同。

    【讨论】:

    • 谢谢。这主要是审美问题。它将焦点从其他元素上移开。不过我会试试你的建议。
    【解决方案2】:

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

    【讨论】:

    • 我仍然希望它是可聚焦的,只是在活动打开时默认不聚焦。
    猜你喜欢
    • 2017-12-18
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2014-01-22
    • 2013-07-19
    • 2014-12-02
    • 2017-11-27
    • 2020-12-01
    相关资源
    最近更新 更多