关于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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式