2013-04-24 3 views
0

В принципе мы можем установить EditBox для принятия определенного типа данных i.e. android:InputType="number". Предположим, если мы введем алфавиты, то символы не будут добавлены в EditBox, т. Е. Никаких действий не будет. Я хочу, чтобы был показан тост, определяющий «Алфавиты запрещены». Какой код я могу попробовать?Android-Toast вместо действия

ответ

3

установить TextWatcher в ваш EditText. Когда произойдет какое-либо изменение, вызывается метод onTextChange. Там вы можете проверить действительность.

Для примера

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     // check vallidity if there is any alphabet show toast 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     // TODO Auto-generated method stub 
    } 
}); 

Вы можете использовать другие два способа также. Я думаю, что название методов ясно говорит их цель

+1

Вы бьете меня к ответу на 9 секунд! :( – Swayam

+1

@swayam oops .. тот же ответ .. ok +1 для вас за право aswer :) – stinepike

+0

+1 к вам тоже, за избиение меня! : D – Swayam

3

Вы должны реализовать свой собственный TextWatcher как

mEditText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     // check if the entered character is valid or not. If not valid, then show Toast 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     // 
    } 
}); 
Смежные вопросы