1

我已经为 ButtonNext 按钮实现了动画,这样当用户正确回答问题时, buttonNext 将像翻转卡片一样进行动画处理,从原来的面朝上到底部的绿色面朝下。

编码如下:

isBlackShowing = false;
if (temp.equals(correct_answer))
{           
    buttonNext.clearAnimation();
    buttonNext.setAnimation(to_middle);
    buttonNext.startAnimation(to_middle);
}

@Override
public void onAnimationEnd(Animation animation) 
{
    if (isBlackShowing == false)
    {       
        buttonNext.setText("Next!");

        buttonNext.setBackgroundResource(R.drawable.green_btn);                 
        buttonNext.clearAnimation();
        buttonNext.setAnimation(from_middle);           
        buttonNext.startAnimation(from_middle);     
    }           
        isBlackShowing = true;
        buttonNext.setEnabled(true);            
}   

问题:

我希望仅在所有动画完成后才启用 ButtonNext,即正确显示绿色 faceDown。

然而,通过上面的代码,我发现按钮已经启用,如果在动画过程中按住按钮,用户可以自由跳转到下一个、下一个和下一个问题。

上面的故障怎么解决??

谢谢!!!

4

1 回答 1

0

按照我的建议交换按钮的侦听器;

final View.OnClickListener first= new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            result.setText("first");

        }
    };
    final View.OnClickListener second= new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            result.setText("second");

        }
    };
    Button swap= (Button) findViewById(R.id.swap);
    final Button btn=(Button) findViewById(R.id.button1);
    swap.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if(a==1)
            {
                btn.setOnClickListener(first);
                a=2;
            }
            else{
                btn.setOnClickListener(second);
                a=1;
            }

        }
    });

我正在使用一个名为 swap 的按钮来快速测试它并且它有效。看起来这就是你要找的东西。

于 2013-09-25T14:18:39.910 回答