2012-01-28 3 views
0

У меня есть некоторый концептуальный вопрос, на который я хотел бы ответить.Концептуальные вопросы - Текстовое поле с выборочным вводом

Я собираюсь сделать приложение для Android, в котором текстовые поля могут иметь только определенные типы входов. В качестве примера десятичные числа просты, вы используете текстовое поле Number. Однако, если я хотел бы использовать систему с шестнадцатеричной нумерацией в качестве примера, как я могу удалить свой ящик из любого введенного ввода, который не является допустимым шестнадцатеричным символом (0-F)? Эта концепция может быть расширена до восьмеричных и двоичных систем нумерации. В идеальном случае клавиатура, которая появляется при щелчке по ящику, будет отображать только действительные символы для этого конкретного поля, но я не уверен, что это возможно.

Спасибо!

К.

ответ

1

Перезапишите текстовое поле слушателя и на нажатия кнопок, получить текст занесены, выполните условия, которые вы хотите. Если она проходит, это приемлемо, если вы не предупредить пользователя ..

Пример слушателя:

tv = (TextView)findViewById(R.id.charCounts); 
textMessage = (EditText)findViewById(R.id.textMessage); 
textMessage.addTextChangedListener(new TextWatcher(){ 
    public void afterTextChanged(Editable s) { 
    } 
    public void beforeTextChanged(CharSequence s, int start, int count, int after){} 
    public void onTextChanged(CharSequence s, int start, int before, int count){ 
     //Check if text is hexadecimal 
    } 
}); 
+0

Как вернуть от onTextChanged говорит, приемлемо или нет? – gkiar

+0

@iKiar это зависит от того, что вы хотите вернуть, вы можете, например, очистить текст в текстовом поле, дать ему красный фон, вывести сообщение Toast, предупреждающее пользователя .... –

+0

Если бы я, например, хотел бы только действительный текст появится в поле, как я могу вернуться из этого утверждения. Я понимаю, что в функции void нет выражения return, но я больше имею в виду, как бы я отображал это в поле в результате условного. – gkiar

 Смежные вопросы

  • Нет связанных вопросов^_^