【问题标题】:How to set android:inputType using databinding如何使用数据绑定设置 android:inputType
【发布时间】:2017-09-22 00:35:07
【问题描述】:

我正在尝试使用以下数据绑定表达式在显示密码的旧方式之间切换:

android:password="@{isMyFlagTrue}"

但是,当我尝试使用 inputType 代替现已弃用的密码属性时,我似乎无法成功设置密码类型。我试过了:

android:inputType="@{isMyFlagTrue? InputType.TYPE_TEXT_VARIATION_PASSWORD : InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD)}"

但这对EditText 视图的inputType 没有影响。即使我尝试将其直接设置为不可见的品种,它仍然是可见的。

有什么建议吗?

【问题讨论】:

  • 您可以在 EditText 中添加一个 TextWatcher 并自己处理输入。更容易,并且可定制。
  • 是的,但是新泽西州的 texWatcher 只需要一个 Editable s 值。但是输入类型取决于 inputString 范围之外的东西
  • 感谢您的澄清。我只是建议您可以使用 TextWatcher 在输入字段中显示之前对其进行解释,并替换为星号标记,同时可以将值存储在局部变量中。

标签: android data-binding


【解决方案1】:

您可以设置输入类型使用数据绑定,如

<EditText
    ...
    android:inputType='@{condition ? (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD) : InputType.TYPE_CLASS_TEXT }'
    />

【讨论】:

  • @Phan_Van_Linh 是由| 表示的包含或吗?那有什么作用?
  • 这是我们以编程方式设置 inputType 的方式:stackoverflow.com/questions/2586301/…。那么在使用数据绑定的时候,我们应该这样做
  • 导入InputType类
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 2018-09-10
  • 2017-04-19
相关资源
最近更新 更多