0

このフォーラムで検索していますが、質問に対する回答が見つかりません。次の問題があります。

イメージビューと 2 つのテキストがあり、次のアクティビティをロードする前に視覚的なフィードバックを表示するために選択の色を変更したいと考えています。

@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 スレッド (runOnUiThread(new Runnable() {...}) で runnable の 3 行を呼び出すと、アクティビティが開始される前に変更が適用されます。メインスレッド別名 UI スレッド。

これは、UI スレッドへの変更が UI スレッドですぐに実行されないということですか? または、私は何か完全に間違っていますか?

ベスト、アダム

4

1 に答える 1

2

正しい。UI要素への変更はすぐには実行されません。これらは、次にUIループが実行されるとき、つまりコントロールを解放した後に実行されます。これが、UIスレッドで高価な操作を実行できない理由です。

于 2011-01-17T21:05:23.977 に答える