2013-04-24 45 views
0

基本上我們可以將EditBox設置爲接受特定的數據類型,即。 android:InputType="number"。假設,如果我們輸入字母,那麼字符將不會被添加到編輯框中,即不執行任何操作。我想要的是必須顯示一個Toast,定義「不允許使用字母」。我可以嘗試什麼樣的代碼?Android-Toast代替無動作

回答

3

在您的EditText中設置一個TextWatcher。當有任何改變時,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 2013-04-24 15:35:44

+1

@swayam哎呀..相同的答案..確定+1爲你正確aswer :) – stinepike 2013-04-24 15:37:22

+0

+1給你也是,爲了擊敗我! :d – Swayam 2013-04-24 15:38:40

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) { 
     // 
    } 
});