如何在Android中再次设置布尔值true?

时间:2015-11-09 17:34:04

标签: java android boolean onclicklistener

boolean isChecked首次声明为true,而不是我在OnClickListenerfalse中设置的boolean isChecked。我需要的是在下一个true中再次将OnClickListener设置为answer[j].setOnClickListener(new View.OnClickListener() { private boolean isChecked = true; @Override public void onClick(View v) { RadioButton checkedRadioButton = ((RadioButton) v); if (isChecked) { if (checkedRadioButton.isChecked()) { score++; isChecked = false; } } } }); resetButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isChecked = true; score = 0; } }); 。我知道这不是在同一范围但我怎么能这样做? 这是我的代码:

OnInspectorGUI()

谢谢!

2 个答案:

答案 0 :(得分:2)

您只需要在onclick侦听器范围之外声明您的布尔值。然后它将变得更加轻松,您可以随心所欲地做任何事情。 在onCreate之前声明它,以便它在此类中具有全局访问权限。

示例

public class MainActivity extends AppCompatActivity {
Button btn, btn2;
boolean isValid;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button) findViewById(R.id.button);
    btn2 = (Button) findViewById(R.id.button2);
    isValid = true;

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            isValid = true;
        }
    });

    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            isValid = false;
        }
    });

  }
}

EDIT V2

我看了一下你再次发布的代码,我可以告诉你的逻辑是说isValid是真的(你有if(isValid))然后进入你的逻辑。好吧,开始你实际上声明值是假的。所以在你的代码中说是isValid = true;发生的事情是你的逻辑是说布尔值不是真的所以不要执行代码。

编辑V3

好的,我再看一遍你的所有代码,我可以看到发生了什么。由于变量是全局的,所以一旦我们将其声明为false,它就不会再次执行,因为它永远不会再次被重新赋值为true。说实话,我没有看到这个变量的目的。哈哈,除了在那里做什么之外什么都不做。但是,如果你想要变量,你应该删除行isChecked = false;正如我所说,老实说,在你的代码中没有任何目的。

答案 1 :(得分:0)

让它简单-------

btn = (Button) findViewById(R.id.button);
    btn2 = (Button) findViewById(R.id.button2);
    isValid = true;

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            isValid = true;
        }
    });

    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            isValid = false;
        }