无法“检查”动态创建的复选框

时间:2017-09-25 06:26:54

标签: android arraylist checkbox checkboxlist

我正在尝试创建动态创建的复选框,具体取决于我在'color'微调器中选择的项目。

例如:如果我在我的微调器上选择“red”,将创建​​以下复选框: Apple [],Strawberry [],Cherry [] 。如果我从微调器中选择“黄色”,将创建​​以下复选框:香蕉[],菠萝[]

我的代码在我运行时正常运行并显示列出的项目,但是当我按下它时,为什么动态生成的复选框“取消选中”?完整的方框中没有出现小“勾选标记”。

private Fruits fruit = new Fruits();

final GridView gv = (GridView) findViewById(R.id.gv);
Spinner sp = (Spinner) findViewById(R.id.sp);

sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

   @Override
   public void onItemSelected(AdapterView<?> adapterView, View v, int pos, long l){

      String item = (String) adapterView.getItemAtPosition(pos);
      List<String> myList = fruit.getFruits(item);

      ArrayAdapter<String> adapter_1 = new ArrayAdapter<String>(Activity_1.this, android.R.layout.simple_list_item_multiple_choice, myList);
      gv.setAdapter(adapter_1);
   }

编辑:

我正在使用Fruits java类来生成我的复选框项目:

public class Fruits {
   List<String> getFruits(String colour) {
      List<String> fruit = new ArrayList<String>();

      if (colour.equals("red")) {
          fruit.add("Apple");
          fruit.add("Strawberry");
          fruit.add("Cherry");
      }
      else if (colour.equals("yellow") {
          fruit.add("Banana");
          fruit.add("Pineapple");
      }

      return fruit;

   }
}

我没有使用string.xml文件来填充我的复选框项目。

1 个答案:

答案 0 :(得分:1)

要选中一个复选框,您需要添加setChecked.Inside onItemSelected添加此代码以使其选中

checkbox.setChecked(true);

同样在你的代码中我认为没有动态创建复选框。如果你想动态创建复选框,那么就像这样创建

CheckBox checkbox = new CheckBox(this);
checkboxsetText("created new checkbox");