0

我的 Android 应用程序中有一个 PreferenceActivity 允许用户配置各种参数。其中一些是在 EditTextPreferences 中输入的数字。我意识到我可以改用 ListPreferences 来强制输入为数字,但是允许值的范围太大而无法方便。

因此,我想添加代码来验证各种条目,以尽可能地保护用户。我在应用程序的其他地方有非常相似的代码,它使用附加到 EditTexts 的 setOnFocusChangeListener 检查选项卡活动中某些 EditText 的内容:

dataField.setOnFocusChangeListener (new DataFieldFocusChangeListener());

这就像一个魅力。

不幸的是,我的 PreferenceActivity 中的 EditTextPreference 中的 EditText 的焦点更改侦听器似乎没有被调用过。任何人都可以建议适合这种情况的听众吗?

4

1 回答 1

1

您可以尝试使用以下侦听器:-

yourEditText.addTextChangedListener(new TextWatcher() {

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged(final CharSequence s, int start, int before, int count) {

        // Perform validation here

    }

});
于 2013-07-17T18:16:12.260 回答