[英]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.