[英]setInputType on EditTextPreference
如何将“setInputType”属性添加到EditTextPreference(我的目标是仅将输入类型设置为数字),我尝试过:
editTextPref.setInputType(InputType.TYPE_CLASS_NUMBER);
但这似乎只适用于EditTexts,而不适用于EditTextPreferences
您可以从Preference中检索EditText,然后从那里检索setInputTypes或使用KeyListeners来通知键盘:
EditText et = (EditText) editTextPref.getEditText();
et.setKeyListener(DigitsKeyListener.getInstance());
如果您真正需要的只是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);
试试这个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.