gpt4 book ai didi

java - Android:TextView 未更新

转载 作者:行者123 更新时间:2023-11-30 08:57:59 24 4
gpt4 key购买 nike

我有一个 EditText 和一个 TextView,我想在每次迭代中更新我的 TextView(ConsoleWindow 在循环中运行;它从处理程序调用,因此在 UIthread 上运行)。

问题是我的 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(),但没有效果。有人可以帮帮我吗?

最佳答案

将 tv 设为全局变量。

 private TextView tv; 

在此之后,在您的“onCreate()”方法中:

 tv = new TextView(getApplicationContext());

然后:

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
tv.setText(dataString); // KEEPS THE SAME UNTIL THE 1ST ROUND
layout.addView(tv);
}

也请验证,如果 dataString 有一些文本,像这样

Log.d(TAG , "dataString: " + dataString + "with first time? " + first2.toString());

尝试传递给 setContentView(layout);在 if 语句之外。因为我不能很好地理解为什么你需要这个。

  LinearLayout layout = new LinearLayout(getApplicationContext());
setContentView(layout);

关于java - Android:TextView 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27846868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com