我使用 androidX 库,因为该库可以自定义 EditTextPreference 对话框的输入类型。AndroidX 是对原始 Android 支持库的重大改进,因此建议大家使用这个库。您可以在此处阅读有关 AndroidX的更多信息。
这是我在 onCreatePreference 方法中使用 EditTextPreference 的代码:
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preference, rootKey);
androidx.preference.EditTextPreference editTextPreference = getPreferenceManager().findPreference("use_key_from_editTextPreference_in_xml_file");
editTextPreference.setOnBindEditTextListener(new androidx.preference.EditTextPreference.OnBindEditTextListener() {
@Override
public void onBindEditText(@NonNull EditText editText) {
editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
}
});
}
使用此代码并单击 editTextPreference 后,将弹出对话框,您的键盘输入类型将仅为数字。