2011-09-06 3 views
7

как я могу добавить «setInputType» propety к EditTextPreference (моя цель состоит в том, чтобы установить тип входного сигнала только цифры), я пробовал:setInputType на EditTextPreference

editTextPref.setInputType(InputType.TYPE_CLASS_NUMBER); 

, но это только кажется, работать для EditTexts, не EditTextPreferences

ответ

7

Вы можете получить EditText от предпочтений и оттуда setInputTypes или использование KeyListeners информировать клавиатуры:

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

Try This

  1. вызов getEditText() из editTextPref
  2. затем установите входной тип к этому.
4

Если вам действительно нужен один входной тип для вашего editTextPreference, вы можете установить его в XML с помощью android: inputType = "number" или android: inputType = "numberDecimal".

Пример:

<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" /> 

Кроме того, спасибо на предложение Дэйва выше, я был в состоянии достигнуть этого программным путем присвоения 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); 
Смежные вопросы