
关于TextView.setText()无法在侦听函数中及时更新?
在侦听函数中加入了TextView.setText方法来修改界面内容。界面的内容不是在执行setText()方法后立即更改,而是在执行完onClick()后才修改。为什么...
在侦听函数中加入了TextView .setText方法来修改界面内容。界面的内容不是在执行setText()方法后立即更改,而是在执行完onClick()后才修改。为什么会这样?有什么方法可是实现执行setText()方法后立即修改界面内容?麻烦了,谢谢!public class Truclick1 extends Activity implements OnClickListener{ TextView textView; int number=0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView)this.findViewById(R.id.textView); textView.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub for(int i=0;i<1000;i++) { textView.setText(""+(number++)); //延时作用 for(int j =0;j<100*3;j++) for(int j1 =0 ; j1<100;j1++); } }} 执行结果:点击textView之后过5秒左右,界面的textView的内容直接变为999。
展开
2013-08-13
展开全部
假如在onclick()里面有1W个setText()函数调用,系统去刷新1W次,但是对于我们来说根本看不出来,就只能看到最后一次调用setText()函数设置的值,这样你认为这个系统的效率是不是很低啊? 所以 我猜想,android不会那样去刷新界面的,而是会等到“android认为是合适的时机”去刷新界面,至少不会在一个函数还没有执行完就去刷新吧!这完全是我个人的猜想,欢迎批评指正!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-13
展开全部
个人觉得onClick()没有执行完的话,UI线程被block在onClick这里所以无法刷新UI
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询