有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在动态添加复选框时查看选中的复选框

我有一个包含TextViewCheckBox的XML,现在我将它们添加到活动中, 我添加了多少取决于有多少问题,但如果选中了复选框,我想看看是哪一个,我该怎么做

for (int i = 0; i< questions.size(); i++) {

    View view1 = View.inflate(Checklist.this, R.layout.question, null);
    TextView myText = (TextView) view1.findViewById(R.id.questiontext);
    checkbox = (CheckBox) view1.findViewById(R.id.checkBox);
    layout.addView(view1);
    myText.setText(questions.get(i).question);

    checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
           //check which checbox is checked
        }
    });

}

这就是如何将它们添加到我的视图中


共 (1) 个答案

  1. # 1 楼答案

    您可以使用setTag在复选框上设置标记:

    创建时:

    for (int i = 0; i< questions.size(); i++) {
    
        View view1 = View.inflate(Checklist.this, R.layout.question, null);
        TextView myText = (TextView) view1.findViewById(R.id.questiontext);
        checkbox = (CheckBox) view1.findViewById(R.id.checkBox);
        checkbox.setTag(String.valueOf(i));
        layout.addView(view1);
        myText.setText(questions.get(i).question);
    
        checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
               //check which checbox is checked
               String tag= (String)buttonView.getTag();
            }
        });
    }
    

    这将给你标签(i),它将指示问题编号

    希望有帮助