Bry*_*n C 12 java validation android preferences android-alertdialog
有没有人有示例代码来验证用户在首选项中输入的文字?例如,我有一个EditTextPreference供用户输入电子邮件地址.我想验证输入的电子邮件地址的格式,如果格式不正确,则弹出警告对话框.有人有任何示例代码吗?谢谢
实现Preference.OnPreferenceChangeListener
boolean onPreferenceChange(首选项首选项,对象newValue)
当用户更改了首选项时调用.这将在Preference的状态即将更新之前和状态持久之前调用.
返回True以使用新值更新"首选项"的状态.
所以你可以直接返回值验证的结果.
public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
findPreference("mail_preference_key").setOnPreferenceChangeListener(
new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
return Pattern.matches("mailPattern", (String) newValue);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
当我试图做同样的事情时,你的问题是早期的谷歌热门,所以希望这有助于某人.这是今天我一起入侵的东西,它演示了OnPreferenceChangeListener,从而允许你停止无效的更改.
在你的片段中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
Your_Pref = (EditTextPreference) getPreferenceScreen().findPreference("Your_Pref");
Your_Pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
Boolean rtnval = true;
if (Your_Test) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Invalid Input");
builder.setMessage("Something's gone wrong...");
builder.setPositiveButton(android.R.string.ok, null);
builder.show();
rtnval = false;
}
return rtnval;
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10366 次 |
| 最近记录: |