java - 将复选框添加到 ListView
问题描述
您好,我目前正在尝试在 android 上制作我的第一个应用程序,但遇到了一些问题。我正在尝试制作一个待办事项列表应用程序,因此希望将某种输入转换为复选框。我已经使用 radioGroup 使它与单选按钮一起工作。但是当使用带有 ListView 的 Checkboxes 时,它就不起作用了。
这是我的代码:
public class MainActivity extends AppCompatActivity {
EditText t;
ListView listView;
ArrayList<CheckBox> checkList = new ArrayList<>();
int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void add(View view){
t = findViewById(R.id.input);
String s = t.getText().toString();
CheckBox check = new CheckBox(this);
checkList.add(check);
listView = findViewById(R.id.list);
checkList.get(i).setText(s);
listView.addView(checkList.get(i));
i++;
t.setText("");
}}
该应用程序崩溃说有关适配器视图
解决方案
不幸的是,你在这里做错了什么。您正在尝试将您的视图添加到 Listviews
listView.addView(checkList.get(i));
这不是使用 ListViews 的正确方法。您必须使用适配器。适配器需要为要加载的列表视图提供数据。
请查看本教程以了解如何使用列表视图。
以下是正确使用 listView 的步骤摘要。
custom_cell.xml
在您的布局文件夹中创建一个新的布局文件(例如)。- 在您的内部插入一个复选框
custom_cell.xml
并放置一个 ID,您可以稍后使用它来识别该复选框 - 为您的列表视图创建一个适配器
- 覆盖
getView
方法 - 在方法内部,使用或重用现有单元格(如果提供
getView
)为新单元格充气custom_cell.xml
custom_cell.xml
使用您在文件中提供的 ID 引用复选框
推荐阅读
- android - 使用 Jenkins 构建 APK 时出现 kotlin.KotlinNullPointerException(无错误消息)
- java - 检测到逻辑计划之间的 INNER 连接的隐式笛卡尔积
- c# - 从静态方法调用实例方法
- rust - 我可以用 Rust 的可变参数宏“枚举”吗?
- django - 弹性豆茎错误:实例上的命令失败。返回码:1
- javascript - 全局结果的 JavaScript 绑定未定义
- c - 遍历链表 1
- java - 如何为用 java 和 angular 编写的 Web 服务代码启用代码覆盖率
- python-3.x - Python中的XML解析问题
- rest - 如何在瞬态异常重试期间处理客户端响应?