Java 如何在按下按钮时更改变量的值(Android Studio)

Java 如何在按下按钮时更改变量的值(Android Studio),java,android,android-studio,Java,Android,Android Studio,我正在尝试制作我的第一个Android应用程序,但遇到了一个我不知道如何修复的错误。 我想在按下图像按钮时更改名为buttonPressed的变量的值,这是我到目前为止的代码: 布尔按钮按下=假 ImageButton button_a=(ImageButton)findViewById(R.id.blue_a_button); //a function to play the audio when button_a is pressed button_a.setOnClickListener

我正在尝试制作我的第一个Android应用程序,但遇到了一个我不知道如何修复的错误。 我想在按下图像按钮时更改名为buttonPressed的变量的值,这是我到目前为止的代码: 布尔按钮按下=假

ImageButton button_a=(ImageButton)findViewById(R.id.blue_a_button);

//a function to play the audio when button_a is pressed
button_a.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        player=MediaPlayer.create(GameActivity.this,R.raw.a);

        player.start();

        buttonPressed = true;

    }
});
然而,当我在Android Studio中输入这个时,我得到了一个错误:“变量”buttonPressed“是从内部类访问的,需要声明为final”

如果我把变量设为final,那么这个值就不能改变。我该怎么办


干杯:)

只需将变量声明为:

  public  class <Your Class Name> extends Activity{

       private boolean buttonPressed;
公共类扩展活动{
私有布尔按钮按下;

如果要在按下按钮时访问该变量,则应将其声明为类变量

public class MainActivity extends Activity {

    Boolean buttonPressed = false;

    @Override
    public void onCreate(Bundle savedInstanceState) {

    //-->>>>> If you will declare the variable here, then it has to be final..

    final Button button_a = (Button) findViewById(R.id.button_a);

    //a function to play the audio when button_a is pressed
    button_a.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            player=MediaPlayer.create(GameActivity.this,R.raw.a);
            player.start();
            buttonPressed = true;
        }
    });
    }
}

我该怎么做?学习java基础知识…简而言之,buttonPressed在其他函数中似乎是局部变量…不能用于内部类(inplace View.OnClickListener实现)按下的按钮应该是活动或碎片的成员我想所有的答案和问题都被某人或某事标记为-1…:P+1没有定语的版本是OK为什么又是-1?嘿,巨魔去你的洞!哈哈哈哈哈,不是…OP使用了局部变量,在这个答案中,你应该将它声明为类变量…仍然是code并没有表明它是一个内部类,它要求变量是最终的。我明白了,我的错误。我现在应该回家了。不,我知道。我仍然把它作为函数变量。ans是正确的,但不是解决方案。