我有一个的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