如何将“setInputType”属性添加到EditTextPreference(我的目标是仅将输入类型设置为数字),我尝试过:
editTextPref.setInputType(InputType.TYPE_CLASS_NUMBER);
但这似乎只适用于EditTexts,而不适用于EditTextPreferences
答案 0 :(得分:8)
您可以从首选项中检索EditText,然后从那里检索setInputTypes或使用KeyListeners来通知键盘:
EditText et = (EditText) editTextPref.getEditText();
et.setKeyListener(DigitsKeyListener.getInstance());
答案 1 :(得分:4)
如果您真正需要的只是editTextPreference的单个inputType,您可以使用android:inputType =“number”或android:inputType =“numberDecimal”在XML中设置它。
示例:
<EditTextPreference
android:defaultValue="130"
android:dialogMessage="@string/upper_limit_hint"
android:dialogTitle="@string/upper_limit_text"
android:inputType="number"
android:key="UPPER_LIMIT"
android:maxLength="4"
android:summary="@string/upper_limit_hint"
android:title="@string/upper_limit_text" />
另外,对于Dave的上述建议,我能够通过将EditTextPreference分配给TextView(我无法使用EditText)以编程方式实现此目的。
示例:
EditTextPreference editTextPreference = (EditTextPreference) preference;
TextView etpTextView = (TextView) editTextPreference.getEditText();
// If I want entry with decimal capability
etpTextView.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
// or if I want entry without decimal capability
etpTextView.setInputType(InputType.TYPE_CLASS_NUMBER);
答案 2 :(得分:0)
试试这个