use*_*r25 2 android android-support-library
<android.support.v7.preference.EditTextPreference
android:key="prefTest"
android:title="test number input"
android:inputType="numberDecimal|numberSigned"
android:defaultValue="800"/>
Run Code Online (Sandbox Code Playgroud)
它仍然显示常规键盘,并允许我键入任何字符
有什么问题android.support.v7吗?
设置的开发人员指南中的自定义设置部分建议您使用以下方式OnBindEditTextListener以编程方式设置输入类型:
public class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.settings_screen, rootKey);
EditTextPreference weeklyGoalPref = findPreference("weekly_goal");
if (weeklyGoalPref != null) {
weeklyGoalPref.setOnBindEditTextListener(new EditTextPreference.OnBindEditTextListener() {
@Override
public void onBindEditText(@NonNull EditText editText) {
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
}
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在 xml 中将输入类型定义为“数字”,但仍然使用带字母的普通键盘。这种方法对我有用。
android:digits="0123456789"
Run Code Online (Sandbox Code Playgroud)
在edittext中使用它,因为它只接受定义的数字.如果它不起作用,那么使用Android-Support-Preference-V7-Fix库.
修复了EditTextPreference将XML属性(如inputType)转发到EditText,就像原始首选项一样.
| 归档时间: |
|
| 查看次数: |
4125 次 |
| 最近记录: |