簡體   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