这段代码的真假有什么区别?

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        if (isChecked) {
            int cbcheck = 1;
        } else {
            int cbcheck = 0;
        }
    }

    @Override
    public void onClick(View v) {
        ;
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.registerbut:
            onCheckedChanged(cbagree, false);
            if (cbcheck == 1) {
                Intent intent = new Intent(this,
                    RegisterScreen2.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                startActivity(intent);
            } else if (cbcheck == 0){
            }
            break;
        }
    }

如果我通过了False会发生什么?
我希望这样做,如果复选框,意图将运行,否则它将为您指出复选框。我试过保存checkboxing,然后使用savepreferences和loadpreferences加载它,但我发现这太麻烦了。有没有其他方法可以做到这一点?
这是在android顺便说一句。

最佳答案

正如本文所写,没有区别,因为您的函数onCheckedChanged()实际上什么也不做:在两个局部块中,局部变量被声明,立即超出范围,并且这个函数根本没有任何净效果。
也许你是想改为修改某个私有类成员?
建议:这里有一个通过私人成员传递国家变更的想法:

class Thing
{
  private int cbcheck;

  public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
  {
    cbcheck = isChecked ? 1 : 0;
  }

  /* ... */
}

09-04 22:05