繁体   English   中英

在Android中启动新活动之前,如何在onClickListener中处理UI更改?

[英]How will UI changes be processed in the onClickListener before starting a new activity in Android?

我在此论坛中一直在搜索,但找不到我的问题的任何答案。 我有以下问题:

我有一个imageview和两个文本,我想更改选择的颜色以在加载下一个活动之前显示视觉反馈。

@Override
public void onClick(View v) {
   openFormOverviewButton.setColorFilter(0x22FFFFFF, Mode.SRC_ATOP);
   openFormOverviewTitle.setTextColor(0xFF00851B);
   openFormOverviewText.setTextColor(0xFF00851B);
   Intent tki = new Intent();
   tki.setClass(getApplication(), DataCollectorFormOverviewActivity.class);
   startActivity(tki);
}

我希望按钮和文本被更改,然后开始新的活动。 但是,文本不会更改,并且活动开始。 如果我在UI线程的runnable中调用三行代码(runOnUiThread(new Runnable(){...}),那么更改将在活动开始之前应用。这实际上很奇怪,因为onClick方法是在主线程又名UI线程。

这是否意味着对UI线程的更改不会立即在UI线程上执行? 还是我做错了什么?

最好,亚当

正确。 UI元素的更改不会立即执行。 它们在下一次UI循环运行时执行,也就是释放控件后。 这就是为什么您不能在UI线程上执行昂贵的操作的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM