Android 我的CheckBox.isChecked()始终为空

Android 我的CheckBox.isChecked()始终为空,android,Android,我目前正在为一个应用程序制作一个MCQ,现在我正在制作一个按钮,看看我的答案是否正确 我通过多重映射从相关问题中获得选择,通过充气机获得复选框,如下所示: for (String answer : multiMap.get(questionFromMultiMap)) { CheckBox et_button = (CheckBox) getLayoutInflater().inflate(R.layout.numberofchoices, null);

我目前正在为一个应用程序制作一个MCQ,现在我正在制作一个按钮,看看我的答案是否正确

我通过多重映射从相关问题中获得选择,通过充气机获得复选框,如下所示:

for (String answer : multiMap.get(questionFromMultiMap))
        {
            CheckBox et_button = (CheckBox) getLayoutInflater().inflate(R.layout.numberofchoices, null);
            container.addView(et_button);
            et_button.setText(answer);
            listOfChoice.add(answer);

        }
当我试图检查其中一个是否为check And get string时,logcat告诉我:

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.CheckBox.isChecked()' on a null object reference
     at lyceraymondpointcar.entinfo.Games.Symptom$1.onClick(Symptom.java:87)
下面是我如何检查是否已检查的方法

btnCorrect.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if ((et_button).isChecked()){
                String choice = et_button.getText().toString();
                System.out.println("pouet");
            }else {
                //getQuestionAndAnswerFromList();
                System.out.println("pouet");


            }
        }
    });
如果有人能向我解释的话,我不知道我为什么会犯这个错误

对我来说,这是一个问题,我的充气机,因为我有3或4个复选框与相同的id!那我该怎么办呢

谢谢你的帮助

使用以下命令:

View v = getLayoutInflater().inflate(R.layout.numberofchoices, null);
CheckBox et_button = (CheckBox) v.findViewById(R.id.YOUR_CHECKBOX_ID);
            container.addView(et_button);

你是否有这个
复选框et_button=(CheckBox)v.findViewById(R.id.YOUR_CheckBox_id)正确吗?“您的\u复选框\u ID”是否正确?

您需要查看变量范围。您可能在两个位置声明了
et_按钮
,但您没有给此行访问的按钮赋值:

if ((et_button).isChecked())
您需要从此行中删除
复选框
,如下所示:

et_button = (CheckBox) getLayoutInflater().inflate(R.layout.numberofchoices, null);
因为通过这种方式,您实际上是在为下面访问的
et_按钮
赋值

我假设您在活动的其他地方声明了
et_按钮
,因为编译器给您的是NPE,而不是“变量
et_按钮
未定义”。

编辑: 此外,此处1对支架已过时,因此请按如下方式移除:

if (et_button.isChecked())

使用
setoncheckedchangedlistener
尝试此操作鉴于代码摘录的范围,
et_按钮
不可能是同一个变量。你很可能在跟踪。是的!没错!我刚从线路上拆下复选框,它就成功了!谢谢现在还有另一个问题,它只检查我的最后一个复选框是否被选中:s我现在正试图在充气中使用setIt祝你好运:D很高兴能提供帮助。我希望你明白你做错了什么?如果没有,写下来,我会用一个简短的例子来编辑答案。\n是的,我知道我做错了什么,这真的很愚蠢,因为我已经在其他类似的游戏中使用了这种方法,但我没有让“复选框”在这种情况下:)好,那么。不要因为愚蠢的错误而自责,我们都犯过很多次,相信我。是的,我知道了,解决方案是Vucko给出的。你需要像这样删除这行中的复选框:et_button=(Checkbox)getLayoutInflater()。充气(R.layout.numberofchoices,null)谢谢你试图帮助我,真的很感激!只需删除复选框!谢谢你帮助我!