我一直在这个论坛上搜索有关如何创建一个布尔值,该布尔值在单击时会切换为true。在我的程序中,我有两个按钮:是和否。当我单击它们时,在onClick
方法中,布尔值切换为true,但在其余代码中,它保持为false。
代码:
public class MainActivity extends AppCompatActivity {
static boolean yesisclicked=false;
static boolean noisclicked=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button comment;
final Button yes;
final Button no;
comment =findViewById(R.id.comment);
yes= findViewById(R.id.yes);
no = findViewById(R.id.no);
yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yesisclicked=true;
noisclicked=false;
}
});
no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
noisclicked=true;
yesisclicked=false;
}
});
comment.setText(""+noisclicked);
为什么会发生,我该如何解决?
您正在混合使用相同名称的按钮和静态布尔值,并且在您的onclick处理程序中,您似乎正在使用一些具有局部作用域的变量。]>
我想这应该起作用:
public class MainActivity extends AppCompatActivity {
static boolean yesClicked = false;
static boolean noClicked = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button comment = findViewById(R.id.comment);
final Button yes = findViewById(R.id.yes);
final Button no = findViewById(R.id.no);
yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yesClicked = true;
noClicked = false;
// comment.setText("Yes clicked!" + yesClicked);
}
});
no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yesClicked = false;
noClicked = true;
// comment.setText("No clicked! " + noClicked);
}
});
}
}