次のコードは、一部のビューの背景色の明るさを128から255に、またはその逆にするために書いたコードです。残念ながら、それを待たせるハンドラは正しく機能していません。親切にもこのコードを教えてください。ハンドラーがAndroidの関数で正しく機能していない
9個のビューを持つ3x3マトリックスがあります。私はランダムに任意の1つのセルの不透明度を変更しています。
LEVEL:1つずつ変更したいセルの数。ここで、LEVEL:3
color [9]:3x3の9つのビューを含むマトリックス。 AndroidのモニターLogcat
11-06 04:21:27.267 30640-30640/com.example.aman D/ i :: 0
11-06 04:21:27.267 30640-30640/com.example.aman D/ random :: 1
11-06 04:21:27.267 30640-30640/com.example.aman D/Pattern incoming: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/Outside handler: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/ i :: 1
11-06 04:21:27.267 30640-30640/com.example.aman D/ random :: 3
11-06 04:21:27.267 30640-30640/com.example.aman D/Pattern incoming: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/Outside handler: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/ i :: 2
11-06 04:21:27.267 30640-30640/com.example.aman D/ random :: 7
11-06 04:21:27.267 30640-30640/com.example.aman D/Pattern incoming: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/Outside handler: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/ random :: 7
11-06 04:21:27.267 30640-30640/com.example.aman D/Pattern incoming: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/Outside handler: 128
$$ - 11-06 04:21:27.267 30640-30640/com.example.aman D/Inside handler: 128
$$ - 11-06 04:21:27.267 30640-30640/com.example.aman D/Inside handler: 128
$$ - 11-06 04:21:27.267 30640-30640/com.example.aman D/Inside handler: 128
あなたは「インサイドハンドラは」3回走るループの最後に印刷されていることを見ることができるように
public void pattern() {
for(int i=0;i<LEVEL;i++) {
int rand= 0 + (int)(Math.random() * 8);
computer+=rand;
Log.d(" i :" , ""+i);
Log.d(" random :" , ""+rand);
Log.d("Pattern incoming " , ""+color[rand].getBackground().getAlpha());
color[rand].getBackground().setAlpha(128);
final int random=rand;
handler.postDelayed(new Runnable() {
@Override
public void run() {
color[random].getBackground().setAlpha(128);
Log.d("Inside handler " , ""+color[random].getBackground().getAlpha());
color[random].getBackground().setAlpha(255);
}
},2000);
color[rand].getBackground().setAlpha(128);
Log.d("Outside handler " , ""+color[rand].getBackground().getAlpha());
}
}
。私は、次のように単に「パターンの着信」の後と「外ハンドラ」の前に実行する「インサイドハンドラ」を期待していた:
11-06 04:21:27.267 30640-30640/com.example.aman D/ i :: 0
11-06 04:21:27.267 30640-30640/com.example.aman D/ random :: 1
11-06 04:21:27.267 30640-30640/com.example.aman D/Pattern incoming: 128
$$ - 11-06 04:21:27.267 30640-30640/com.example.aman D/Inside handler: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/Outside handler: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/ i :: 1
11-06 04:21:27.267 30640-30640/com.example.aman D/ random :: 3
11-06 04:21:27.267 30640-30640/com.example.aman D/Pattern incoming: 128
$$ - 11-06 04:21:27.267 30640-30640/com.example.aman D/Inside handler: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/Outside handler: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/ i :: 2
11-06 04:21:27.267 30640-30640/com.example.aman D/ random :: 7
11-06 04:21:27.267 30640-30640/com.example.aman D/Pattern incoming: 128
$$ - 11-06 04:21:27.267 30640-30640/com.example.aman D/Inside handler: 128
11-06 04:21:27.267 30640-30640/com.example.aman D/Outside handler: 128
正確にlogcatで見たいと思われるものは何ですか?ハンドラが正しく機能していないということをあなたはどういう意味ですか?また、新しいウィンドウで開く必要がないように、質問に貼り付けてください。 –
@DavidRawson。私はここにlogcatステートメントを追加しました。その質問が今はっきりしていることを願っています。あなたの助けは高く評価されます。 –
ありがとう!それは簡単に答えます –