スレッドから、UIを操作すると問題が出ます。
これはSwingでも同じですね。
スレッドからUIを操作する場合は、Handlerを使う必要があります。
以下はNG
#codeprettify{{ public void run(){
Button btn = (Button)findViewById(R.id.XXXX); btn.setEnabled(true);
} }}
問題の出ない方法
#codeprettify{{ Handler handler= new Handler(); ・・・ public void run(){
handler.post(new Runnable(){ public void run(){ Button btn = (Button)findViewById(R.id.XXXX); btn.setEnabled(true); } });
}
}}
これは、スレッドをUIのイベントキューに埋め込んで処理させているようです。
そうすることでメインスレッドで処理を動かし、UI操作を可能にしているらしい。