繁体   English   中英

EditTextPreference上的setInputType

[英]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);

试试这个

  1. 从editTextPref调用getEditText()
  2. 然后将输入类型设置为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM