我是Android開發新手(我正在上課),請耐心等待。使用TextWatcher偵聽器顯示已編輯的文本
我必須使用TextWatcher將編輯後的文本從EditText小部件顯示到TextView小部件中。例如,如果編輯了最初輸入的內容(如用戶鍵入「Hoozledoofer」,然後突出顯示「zledoof」,最後在其位置鍵入「v」),則必須先輸入格式:
'zledoof' => 'v'
這顯示在TextView的第一行。然後,第二行將顯示現在出現在EditText部件中的全文:
Hoover
我不知道如何做到這一點。我知道我需要在afterTextChanged方法中輸出結果。如何保存已完成的內容,並保持輸出的內容?有什麼建議?
下面是在課堂上給出一個TextWatcher例如:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtEdit = (EditText) findViewById(R.id.editText1);
viewText = (TextView) findViewById(R.id.text);
txtEdit.addTextChangedListener (new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
Log.i("TC", "beforeTC " + s.toString() + " "
+ s.subSequence(start, start + count).toString());
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.i("TC", "onTC " + s.toString() + " "
+ s.subSequence(start, start + count).toString());
}
public void afterTextChanged(Editable s) {
Log.i("TC", "afterTC " + s.toString());
}
});
}
這是我已經試過它提供預期的最終結果,但它並繼續表示使用了每個小編輯。這可能不是問題,可能對教授有用:
txtEdit.addTextChangedListener (new TextWatcher() {
String changed, newStr, edit;
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
changed = s.subSequence(start, start + count).toString();
//Log.i("TC", "beforeTC " + s.toString() + " "
//+ s.subSequence(start, start + count).toString());
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
newStr = s.toString();
edit = s.subSequence(start, start + count).toString();
//Log.i("TC", "onTC " + s.toString() + " "
//+ s.subSequence(start, start + count).toString());
}
public void afterTextChanged(Editable s) {
viewText.setText(changed + " => " + edit + "\n" + newStr);
//Log.i("TC", "afterTC " + s.toString());
}
});
這是你老師給你的一個很好的例子!有了它,您可以看到LogCat中的每個播放改變。在我看來,如果你玩EditText(輸入隨機字符,移動光標,刪除東西),你會了解到三種方法如何比任何人都能解釋得更好更快...... – Sam 2013-02-19 16:05:00
謝謝!但是,我不確定如何訪問LogCat以查看這些更改。 – 2013-02-19 16:06:58
我明白了,那會是一個問題。 :)你在使用Eclipse嗎?進入'Window> Show View> Other ...'然後'Android> LogCat'(顯然不要使用已棄用的版本)。 – Sam 2013-02-19 16:10:02