选中复选框后的AndroidStudio Java消息

选中复选框后的AndroidStudio Java消息,java,android,checkbox,toast,Java,Android,Checkbox,Toast,当我选中一个复选框时,我试图显示一条消息。问题是没有显示该消息。如果我在启动应用程序时默认选中了复选框,则消息将仅显示在开始处,如果我尝试取消选中并再次选中,它将不会再次显示。代码如下: public class MainActivity extends AppCompatActivity { CheckBox checkBox; @Override protected void onCreate(Bundle savedInstanceState) {

当我选中一个复选框时,我试图显示一条消息。问题是没有显示该消息。如果我在启动应用程序时默认选中了复选框,则消息将仅显示在开始处,如果我尝试取消选中并再次选中,它将不会再次显示。代码如下:

public class MainActivity extends AppCompatActivity {

    CheckBox checkBox;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        checkBox = (CheckBox) findViewById(R.id.checkBox);
        if (checkBox.isChecked())
            Toast.makeText(MainActivity.this, "Box was checked", Toast.LENGTH_SHORT).show();
    }

您需要在复选框上设置侦听器

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){})

您需要为您的复选框实现一个侦听器,以便处理其单击。删除此行

 if (checkBox.isChecked())
        Toast.makeText(MainActivity.this, "Box was checked", Toast.LENGTH_SHORT).show();
并使用此代码:

checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked)
                Toast.makeText(MainActivity.this, "Box was checked", Toast.LENGTH_SHORT).show();

            else
                Toast.makeText(MainActivity.this, "Box was unchecked", Toast.LENGTH_SHORT).show();

        }
    });

在任何“UI工具包”(Windows窗体、AWT、SWT等)中,您都必须“注册某些事件”。。。。不仅仅是检查值,我还有一个问题。为什么我的代码不起作用?If语句非常清楚,那么它有什么错呢?我想我在你的代码中遗漏了一些重要的东西,你问你的小部件是否被检查过,它回答你:“是的,我被检查过”,就这样。但是,如果您想跟踪用户和复选框之间的任何输入,您需要实现一个侦听器(一个从视图捕获回调的接口),以便捕获该输入。在这里,你可以更好地理解我试图向你展示的东西:如果你理解了,请告诉我。如果可以,请将答案标记为正确。谢谢您的帮助!