【问题标题】:How can I check an EditTextPreference value before the User validate it?如何在用户验证之前检查 EditTextPreference 值?
【发布时间】:2012-05-18 07:55:33
【问题描述】:

我的应用程序目前有一个偏好,提示用户输入 2 到 10 个数值。

由于此功能仅适用于高级用户和 beta 测试人员,而不是公开发布,我决定让他们输入 CSV 值。

所以,在我的 EditTextPreference 中,一些用户会输入:“1;20;30”,其他一些用户会输入“1;10;10;10;10;10;10;10”等等......

之后,在我的代码中,我只是拆分这些值来构建一个数组并执行我的代码。 我不得不承认这不是很专业,但确实有效!

String[] patternString = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getString("vibPattern", "0;500;500;500;500;500;500;500").split(";");

主要问题是我想在用户编写字符串时检查它的有效性!

你们中的一些人知道如何实现这一目标吗?

【问题讨论】:

  • 我想得到你的要求。你想在edittext上渲染之前检查字符串。是吗?
  • 对不起我的英语:要求是我想在用户验证之前检查 edittextpreference 的值。例如“1;2;3;”应该被接受,而“a;b;c”或“某事”应该被拒绝。

标签: android edittextpreference


【解决方案1】:

您需要使用“addTextChangedListener”并根据已更改的文本执行操作...

如果您愿意,可以使用正则表达式来检查有效性。

【讨论】:

【解决方案2】:

为什么不只是以编程方式添加希望框的数量,(例如)有一个微调器(下拉菜单),您可以从中选择数量,然后仅添加数字的编辑文本数量?

【讨论】:

  • 这只是个人选择。我认为,一个微调器 + 10 个不同的偏好比只在一个偏好中输入几个值更有用
【解决方案3】:

在布局的 EditText 条目中添加以下内容:

android:inputType="数字" android:digits="0123456789,"

然后在 addTextChangeListener 实现中,您只需检查用户是否刚刚输入了一堆逗号。

【讨论】:

  • 非常感谢,但我在 40 分钟前得到了相同的答案,并且被接受了 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多