我的 android 应用程序出现了一个看似奇怪的问题。无论我调用append 还是setText,我的TextView 只会更新一次。
我将 IME 设置为具有如下监听的“发送”按钮:
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");
}
});
}
如您所见,我在 runOnUiThread 中尝试了 append 和 setText。两者都只在第一次调用 send() 时更新 textView。在随后的调用中,它不会改变。
但!
如果我将应用程序放在后台(点击主页),然后重新启动它,TextView 将拥有所有正确的文本。
我错过了什么?