我有一個的EditText和一個TextView的,我想更新我在每個迭代的TextView(ConsoleWindow在一個循環中運行,它會從一個處理函數中調用,從而在UIthread正在運行)。安卓的TextView沒有更新
的問題是,我的TextView只在第一輪被更新,然後持續了運行時的其餘部分中的第一項(雖然dataString
是一個不同每輪):
private void ConsoleWindow(String dataString) {
LinearLayout layout = new LinearLayout(getApplicationContext());
if (first2) { //first2 is true when application is launched
// ONLY SET LAYOUT AND EDITTEXT IN FIRST RUN TO SAVE CAPACITY
// LINEAR LAYOUT
setContentView(layout);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setBackgroundColor(Color.parseColor("#000000")); // black
// EDITTEXT
EditText et = new EditText(getApplicationContext());
et.setHint("Enter Command");
layout.addView(et);
first2 = false;
}
// TEXTVIEW
TextView tv = new TextView(getApplicationContext());
tv.setText(dataString); // KEEPS THE SAME UNTIL THE 1ST ROUND
layout.addView(tv);
}
我已經嘗試過tv.invalidate()和tv.postInvalidate(),但是這並沒有產生效果。請有人幫助我嗎?
你難道沒有拿到TextView的更新,您可以創建一個新的 – tyczj
問題是,我不能把'新TextView'的if語句,否則'tv.setText(...)'無法執行(因爲其外部if語句的) – blackst0ne
你應該使用'新TextView'任何地方,因爲這就是一個'NEW' TextView的,而不是你正在更新 – tyczj