クイズアプリがあります。誰かが正解をクリックすると、ボタンの色が緑色に変わり、その後、新しい質問をロードします(ListArrayにあります)。重要:アプリはアニメーションの最後まで待機し(この時点ではすべてのボタンが無効になっています)、その後次の質問をロードする必要があります。
誰かが私にこれを行う方法のヒントを教えてもらえますか?
クイズアプリがあります。誰かが正解をクリックすると、ボタンの色が緑色に変わり、その後、新しい質問をロードします(ListArrayにあります)。重要:アプリはアニメーションの最後まで待機し(この時点ではすべてのボタンが無効になっています)、その後次の質問をロードする必要があります。
誰かが私にこれを行う方法のヒントを教えてもらえますか?
アニメーションが完了した後、ハンドラーを使用して投稿できます。アニメーションが3秒の場合は、そのようにします。
Handler mHandler = new Handler();
Runnable codeToRun = new Runnable() {
@Override
public void run() {
loadNewQuestion();
};
mHandler.postDelayed(codeToRun, 3000); //Runs the runnable on the UI thread after 3 sec
または、アニメーションリスナーを設定できます(ハンドラーの方が優れています)
Animation myAnim = AnimationUtils.loadAnimation(context, R.anim.my_anim);
Runnable codeToRun = new Runnable() {
@Override
public void run() {
loadNewQuestion();
}
};
AnimationListener myAnimationListener = new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
runOnUiThread(codeToRun);
}
};
myAnim.setAnimationListener(myAnimationListener);
button.startAnimation(myAnim);
これは思ったより難しいです。メイン(GUI)スレッド以外のスレッドで質問を操作する作業を行う必要があります。ハンドラーを理解するには、このチュートリアルを見てみてください。
http://www.vogella.com/articles/AndroidPerformance/article.html#handler