我有一个简单的应用程序,当我点击按钮时,它会从循环中生成的值更新TextView
。
但是当我运行应用程序时,它只会显示TextView
中的最后一个数字。我添加了一个Thread.sleep()
以减慢循环,但它不起作用,仍然是相同的结果。我在这做错了什么?谢谢你的推荐
public class MainThread extends ActionBarActivity {
Button btnShow;
TextView txtSee;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_thread);
btnShow = (Button) findViewById(R.id.btnShow);
txtSee = (TextView) findViewById(R.id.txtSee);
btnShow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
for (int i = 0; i <= 5; i++) {
String text1 = "Iteration No " + i + " occured";
txtSee.setText(text1);
Thread.sleep(2000);
}
} catch (InterruptedException e) {
}
}
});
}
....
}
答案 0 :(得分:1)
使用
txtSee.append(text1);
而不是
txtSee.setText(text1);
您的循环执行得太快,无法让您观察更改
答案 1 :(得分:0)
在循环内调用另一个函数并使用
该职能内部txtSee.setText(text1);
。
or (int i = 0; i <= 5; i++) {
String text1 = "Iteration No " + i + " occured";
call_function(text1,txtSee);
}
call_function: -
call_function(String text1,TextView txtSee;){
txtSee.setText(text1);
Thread.sleep(2000);
}