我们如何在EditTextPreference中使用android:inputType?
我检查了EditTextPreference的文档 但是我没有在那里找到android:inputType属性。那么如何在这个代码段中使用它呢我们如何在EditTextPreference中使用android:inputType?,android,xml,edittextpreference,Android,Xml,Edittextpreference,我检查了EditTextPreference的文档 但是我没有在那里找到android:inputType属性。那么如何在这个代码段中使用它呢 <EditTextPreference android:key="edit" android:title="@string/location1" android:summary="@string/summary1" android:dialogTitle="@string/locat
<EditTextPreference
android:key="edit"
android:title="@string/location1"
android:summary="@string/summary1"
android:dialogTitle="@string/location1"
android:dialogMessage="@string/message"
android:inputType="text"
android:singleLine="true"
/>
对于android:singleLine属性也有同样的疑问。您不能从XML中执行此操作,但需要编辑TextPreference,这样您就可以通过编程方式执行此操作。在活动/片段中加载首选项后,您可以执行以下操作:
EditTextPreference pref = (EditTextPreference) PreferenceManager.findPreference("edit");
EditText prefEditText = pref.getEditText();
prefEditText.setInputType(InputType.TYPE_CLASS_TEXT);
prefEditText.setSingleLine(true);
// etc
文档没有列出该类的属性,但是
InputType
属性(以及其他EditText
和TextView
属性)仍然有效。这只在课文中有说明。另见
未明确列出其支持的所有属性,但文本说明:
看
那里的链接不是很有用(他们可能重新组织了一些属性,但从未更新到它的一些链接),但这里有一个到的直接链接。作为快速总结,这些值为(截至发布时):
- 没有
- 正文
- textCapCharacters
- 文本大写词
- 文本和句子
- 文本自动更正
- 文本自动完成
- 文本多行
- textImeMultiLine
- 文本建议
- 纹理
- 文本电子邮件地址
- 文本邮件主题
- 短信
- 短信
- textPersonName
- 纺织服装
- 文本密码
- textVisiblePassword
- 文本WebEditText
- 文本过滤器
- 文本语音
- textWebEmailAddress
- 文本网页密码
- 数
- 编号
- 数字中心
- 数字密码
- 电话
- 日期时间
- 日期
- 时间
显然,您可以使用其中的一个或多个,并用
|
分隔(但我从未这样做过)。您可以找到问题的答案
基本上,您需要导入androidX库并遵循我的代码。使用androidX将输入类型设置为密码,例如: root_preferences.xml:
<androidx.preference.PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:title="Password"
android:key="my_pref_password"/>
</androidx.preference.PreferenceScreen>
#最简单且经过测试的答案#
仅适用于EditTextPreference中的十进制值
在onCreatePreferences中编写此代码
确保同时使用该类的类和属性
范例
输入类型。输入类别编号|输入类型。输入类别编号|
public static class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.root_preferences, rootKey);
EditTextPreference new_bonus= findPreference("new_bonus");
EditTextPreference old_bonus= findPreference("old_bonus");
EditTextPreference.OnBindEditTextListener onBindEditTextListener = new EditTextPreference.OnBindEditTextListener() {
@Override
public void onBindEditText(@NonNull EditText editText) {
editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
}
};
old_bonus.setOnBindEditTextListener(onBindEditTextListener);
new_bonus.setOnBindEditTextListener(onBindEditTextListener);
}
}
android:摘要被忽略了吗?我看不出它用在哪里。