【问题标题】:EditText with "time" type not showing colon in Samsung devices带有“时间”类型的 EditText 在三星设备中不显示冒号
【发布时间】:2020-12-10 14:12:48
【问题描述】:

我正在以编程方式创建一个 EditText,并将其类型设置为时间:

editText.setInputType(InputType.TYPE_CLASS_DATETIME or InputType.TYPE_DATETIME_VARIATION_TIME)

这适用于大多数设备,但我在三星 Galaxy A51 和 A70 上进行了测试,两者都不显示冒号键 (:)

我试过用这个强制字符,但它也不起作用: editText.setKeyListener(DigitsKeyListener.getInstance("0123456789:"))

所以我不确定要尝试什么来获得我的“:”!有什么想法吗?

【问题讨论】:

    标签: android samsung-mobile samsung-galaxy


    【解决方案1】:

    看看使用MaskedEditText。将库添加到 build.gradle 后:

    dependencies {
        implementation 'com.vicmikhailau:MaskedEditText:3.1.1'
    }
    

    您只需这样做:

    <com.vicmikhailau.maskededittext.MaskedEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:mask="##:##" />
    

    注意app:mask="##:##" # 表示它允许任何数字,冒号将是您想要的时间分隔符。所以这将允许像 11:30 等。

    【讨论】:

    • 我不想为此使用库,但如果我没有其他选择,我会尝试一下!
    • 我别无选择,这通常是为什么图书馆比重新发明轮子更受欢迎的原因。希望该库适合您提到的设备,因为该代码已被更多开发人员使用,并且应该经过更多的实战测试。除非您正在为 edittext 掩码编写库,否则您当然不想使用库
    猜你喜欢
    • 1970-01-01
    • 2015-09-21
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多