今天在修改一個代碼時,那個代碼是TextView實時跟蹤Edittext輸入的内容,使用的方法是:
對EditText添加 setOnKeyListener監聽器
原代碼是:
editText1.setOnKeyListener(new EditText.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
//設定在EditText裡所輸入的資料同步顯示在TextView
textView1.setText(editText1.getText());
return false;
}
});
然而問題卻出來了,用手機測試時,在EditText輸入内容時,隻有輸入Enter鍵和Delete鍵TextView才更新内容,而在虛拟機中卻沒有此問題。
對此的解決方法是:
對editText1添加addTextChangedListener監聽器,代碼是:
editText1.addTextChangedListener(new TextWatcher(){
//顧名思義,是文本改變後你想做什麼?在此方法中加相應的代碼
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
//設定在EditText裡所輸入的資料同步顯示在TextView
textView1.setText(editText1.getText());
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// TODO Auto-generated method stub
}
});