Android EditText截獲與監聽輸入事件

來源:互聯網
上載者:User

http://www.android-study.com/jichuzhishi/154.html

1.第一種方法:使用setOnKeyListener(),不過這種方式只能監聽硬鍵盤事件。

1 edittext.setOnKeyListener(new View.OnKeyListener() {2     @Override3     public boolean onKey(View v, int keyCode, KeyEvent event) {4         textview.setText(edittext.getText());5         return false;6     }7 });

2.第二種方法:使用TextWatcher類,這種方式是可以監聽軟鍵盤和硬鍵盤的,我們只需要實現onTextChanged方法即可,另外TextWatcher還提供了beforeTextChangedafterTextChanged方法,用於更加詳細的輸入監聽處理。

 1 edittext.addTextChangedListener(new TextWatcher() {            2     @Override 3     public void onTextChanged(CharSequence s, int start, int before, intcount) { 4         textview.setText(edittext.getText()); 5     } 6       7     @Override 8         public void beforeTextChanged(CharSequence s, int start, int count,int after) { 9     }10      11     @Override12         public void afterTextChanged(Editable s) {13     }14 });

3、程式碼片段:實現當輸入到最大值時則不允許再輸入了,另外,由於EditText並沒有提供給我們EditText的禁止輸入功能,以下方法也實現了此功能。

 1 private void setEditable(EditText mEdit, int maxLength, boolean value) { 2     if (value) { 3         mEdit.setFilters(new InputFilter[] { new MyEditFilter(maxLength) }); 4         mEdit.setCursorVisible(true); 5         mEdit.setFocusableInTouchMode(true); 6         mEdit.requestFocus();   7     } 8     else { 9         mEdit.setFilters(new InputFilter[] { new InputFilter() {10             @Override11             public CharSequence filter(CharSequence source, int start, intend, Spanned dest, int dstart, int dend) {12                 return source.length() < 1 ? dest.subSequence(dstart, dend) :"";13             }14         } });15         mEdit.setCursorVisible(false);16         mEdit.setFocusableInTouchMode(false);17         mEdit.clearFocus();18     }19 }

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.