2011-09-06 52 views
7

我怎麼能「setInputType」歡迎使用屬性添加到EditTextPreference(我的目標是設置輸入類型只有數字),我已經試過:setInputType上EditTextPreference

editTextPref.setInputType(InputType.TYPE_CLASS_NUMBER); 

但這只是似乎工作對於EditTexts,不EditTextPreferences

回答

7

您可以在首選項,並從那裏setInputTypes或使用KeyListeners檢索的EditText通知鍵盤:

EditText et = (EditText) editTextPref.getEditText(); 
et.setKeyListener(DigitsKeyListener.getInstance()); 
0

試試這個

  1. 調用getEditText()從editTextPref
  2. 然後設置輸入類型了這一點。
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);