【发布时间】:2018-03-06 01:07:57
【问题描述】:
我正在尝试根据在我的“颜色”微调器中选择的项目动态创建复选框。
例如:如果我在微调器上选择 "red",将创建以下复选框:Apple [ ]、Strawberry [ ]、Cherry [ ]。如果我从微调器中选择 "yellow",则会创建以下复选框:Banana [ ]、Pineapple [ ]。
我的代码在运行时可以正常工作并正确显示列出的项目,但是为什么我按下动态生成的复选框“uncheckable”?小“复选标记”根本没有出现在方框中。
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 文件来填充我的复选框项目。
【问题讨论】:
-
我可能遗漏了一些东西,但看起来您正在创建一个字符串列表而不是复选框。您在哪里动态创建复选框?
-
啊,我不太确定。我刚刚开始使用 Android 编程。我是否会这样做:
CheckBox chk = new CheckBox();内onItemSelected? -
一般是这样的。自从我做 Android 工作以来已经有一段时间了,我不在我的工作站旁边检查它。但一般来说,您需要创建新视图,在本例中为 CheckBox,然后将其添加到您想要的任何视图中,例如 GridView。然后它应该工作
-
如果你也附上你的xml文件会更容易指导。
-
我实际上使用了一个名为
Fruits的Java 类(因此我在最顶部实例化了它)。在那个 Fruits java 类中只是简单的 if-else 语句,例如if(fruit.equals("red")) { fruit.add("Apple") }
标签: android arraylist checkbox checkboxlist