Java 如何在方法中修改全局变量

Java 如何在方法中修改全局变量,java,android,Java,Android,我有一个android的10个按钮的动画,我需要用一个命令触发这个按钮,所以我有一个名为order的变量,如果order=1,button1可以被激活,如果order=2,button2可以被激活,依此类推。当我打开程序时,一个动画开始,然后第二个动画在第一个动画结束后重复,在这两个动画之间,我需要将变量顺序更改为1。我有下一个代码: public class Juego extends Activity { private AnimationDrawable animacion, lo

我有一个android的10个按钮的动画,我需要用一个命令触发这个按钮,所以我有一个名为order的变量,如果order=1,button1可以被激活,如果order=2,button2可以被激活,依此类推。当我打开程序时,一个动画开始,然后第二个动画在第一个动画结束后重复,在这两个动画之间,我需要将变量顺序更改为1。我有下一个代码:

public class Juego extends Activity
{
    private AnimationDrawable animacion, loop;
    private MediaPlayer miPlayer;
    private int order = 0;

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_juego);
    ImageView video = (ImageView) findViewById(R.id.secuencia);
    video.setBackgroundResource(R.drawable.animation_drawable_start);
    animacion = (AnimationDrawable) video.getBackground();
    animacion.start();
    checkIfAnimationDone0(animacion);
}
public void checkIfAnimationDone0(AnimationDrawable anim)
{
    final AnimationDrawable a = anim;
    int timeBetweenChecks = 20;
    android.os.Handler h = new android.os.Handler();
    h.postDelayed(new Runnable()
    {
        public void run()
        {
            if (a.getCurrent() != a.getFrame(a.getNumberOfFrames() - 1))
            {
                checkIfAnimationDone1(a);
            }
            else
            {
                ImageView video = (ImageView) findViewById(R.id.secuencia);
                video.setBackgroundResource(R.drawable.animation_drawable_loop_inicio);
                loop = (AnimationDrawable) video.getBackground();
                loop.start();
                order=1;
            }
        }
    }, timeBetweenChecks);
};

public void onClickButton2(View any)
{
    if (order == 1)
    {
        ImageView video = (ImageView) findViewById(R.id.secuencia);
        video.setBackgroundResource(R.drawable.animation_drawable_boton_1);
        animacion = (AnimationDrawable) video.getBackground();
        miPlayer = MediaPlayer.create(Juego.this, R.raw.sonido_boton_1);
        animacion.start();
        miPlayer.start();
        checkIfAnimationDone1(animacion);
        order=2;
    }
}
等等

问题是全局变量order的值在行序=1时没有改变,并且方法onClickButton()无法启动。如何解决此问题?

在checkIfAnimationDone0()中,当

您可以转到checkIfAnimationDone1(),因此订单永远不会设置为1


将checkIfAnimationDone0()中的checkIfAnimationDone1()更改为checkIfAnimationDone0()。

顺序
不是全局变量;它是一个实例变量。
a.getCurrent() != a.getFrame(a.getNumberOfFrames() - 1)