以下是一个基本的Android 分级/嵌套复选框的代码示例:
在布局文件中,定义一个包含复选框的嵌套列表视图(ListView):
接下来,在Java代码中定义一个自定义适配器(CustomAdapter)来管理列表项的数据和视图:
public class CustomAdapter extends ArrayAdapter- {
private List
- itemList;
private LayoutInflater inflater;
public CustomAdapter(Context context, List
- itemList) {
super(context, 0, itemList);
this.itemList = itemList;
inflater = LayoutInflater.from(context);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item, parent, false);
}
final Item item = itemList.get(position);
CheckBox checkBox = convertView.findViewById(R.id.checkbox);
checkBox.setText(item.getName());
checkBox.setChecked(item.isChecked());
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
item.setChecked(isChecked);
}
});
// 设置缩进
int level = item.getLevel();
int paddingLeft = (int) (level * 20 * getResources().getDisplayMetrics().density);
convertView.setPadding(paddingLeft, 0, 0, 0);
return convertView;
}
}
在上面的代码中,我们使用了一个自定义的Item类来表示每个列表项的数据,包括名称、层级和选中状态。
接下来,我们需要实例化适配器并将其设置给ListView:
ListView listView = findViewById(R.id.list_view);
CustomAdapter adapter = new CustomAdapter(this, itemList);
listView.setAdapter(adapter);
以上代码假设我们已经准备好一个名为itemList的列表,其中包含Item对象的数据。
最后,我们需要在AndroidManifest.xml文件中添加ListView的布局权限:
这样,当用户选择复选框时,我们可以更新Item对象的选中状态,并通过适配器刷新列表视图。
希望这个示例能帮到你实现Android 分级/嵌套复选框的功能!