最初のコードの特定の部分を実行するために、私はこのコードを得ました。 クリックしてテキストを変更したい場合(txt_wait
)強制
変更後、残りのコードを実行する必要があります。 しかし、どういうわけか、それは私もこのような何か(どちらも動作しませんでした)しようとしたそのコードが実行されると、その後、その後、彼はtxt_wait
を変更し、残りのコードを待ち:
public void make_square(View v) {
TextView txt_wait = (TextView) findViewById(R.id.square_txt);
txt_wait.setText("wait...");
make_square2(v);
}
public void make_square2(View v){
try{
//rest of the code (scanning a bitmap for pixels)
}
}
をしかし、また、テキストを変更する前にまずmake_square2
を実行します。 これを解決するにはどうすればよいですか?最初にtxt_wait
を変更した後、コードの残りの部分を変更しますか?
おかげで、すでに、 Bigflow
EDIT1:
はこの試みた:
public void make_square(final View v) {
TextView txt_wait = (TextView) findViewById(R.id.square_txt);
txt_wait.setText("wait...");
new Thread() {
public void run() {
make_square2(v);
}
}.start();
}
public void make_square2(View v){
try{
//rest of the code
}
}
をし、それが私のこのエラーを与える:
E/AndroidRuntime(17487): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
私もこれを試してみました:
public void make_square(View v) {
TextView txt_wait = (TextView) findViewById(R.id.square_txt);
txt_wait.setText("wait...");
make_square2(v);
}
public void make_square2(View v)
new Thread() {
public void run() {
//rest of the code
}
}.start();
これもまったく同じエラーです。
私はスレッドに慣れていない、多分私は非常に悪いことをする。 もう一度お手伝い願います。
私は試しましたが、動作しませんでした。もう一度見ていただけますか?後** Edit1 ** – Bigflow
ok ...私はあなたのコードでは、UIで何かを変更しようとしていると思う...それはmainbスレッド以外の他のスレッドから行うことはできません...あなたのスレッドを入れてrunOnUiThreadメソッドのUIを変更しているコード – 5hssba
申し訳ありませんが、あなたが正確に何を意味するかわかりません、私はアンドロイドプログラミングの初心者です、あなたは他の方法でそれを説明することはできますか? – Bigflow