我的Android應用程序出現了一個看似奇怪的問題。 無論我調用append還是setText,我的TextView都只會更新一次。TextView只更新一次
我有我的輸入法設置爲具有「發送」按鈕,監聽如下:
sendText.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event){
if(actionId == EditorInfo.IME_ACTION_SEND){
try {
send();
scroller.post(new Runnable() {
@Override
public void run() {
scroller.fullScroll(ScrollView.FOCUS_DOWN);
}
});
} catch (Exception e) {
Log.e("chat", e.toString());
}
}
return true;
}
});
的發送方法:
public void send(){
final String message = sendText.getText().toString();
final String ip = ipAddr.getText().toString();
//rcvMsg.append("Me: " + message + "\n");
runOnUiThread(new Runnable(){
public void run(){
TextView rcv = (TextView)findViewById(R.id.rcvMsg);
rcv.setText(rcv.getText()+"Me: "+message+"\n");
}
});
}
正如你所看到的,我想追加和下面的setText在runOnUiThread中。這兩個只在第一次調用send()時更新textView。在隨後的通話中,它不會改變。
但是!
如果我把應用程序放在後臺(打回家),然後重新啓動它,那麼TextView將包含所有正確的文本。
我錯過了什麼?
我試過rcvMsg.invalidate(),但是這並沒有改變任何東西。 – jhirsch 2011-02-28 06:41:54