【发布时间】:2021-11-07 15:37:20
【问题描述】:
我要做的是获取保存在数据库中的字符串值,如果这些值等于 cheboxes 字符串值,则选中这些复选框。
没有详细说明,我在片段中的observe(getViewLifecycleOwner(), d -> { 中进行以下操作
String desc = d.damage.getDescription().trim();
Log.d("checkbox Op #1",desc);
哪个会返回这样的东西(取决于一次保存多少)
D/checkbox Op #1: NSR door NSR quarter NS roof rail OSR door OSR quarter NS sill OS sill NS sliding door OS sliding door
我执行以下操作来获取复选框字符串值并进行比较
for (int i=0; i<=19; i++)
{
String sel5 = allCheckBoxes[i].getText().toString().trim();
Log.d("checkbox Op #2", sel5);
if (allCheckBoxes[i].getText().toString().trim().equals(desc))
{
allCheckBoxes[i].setChecked(true);
Log.d("checkbox Op #3", allCheckBoxes[i].getText().toString());
}
}
上面会返回哪个
D/checkbox Op #2: NSL wing
NSF door
NSR door
NSR quarter
NS roof rail
OSF wing
OSF door
OSR door
OSR quarter
OS roof rail
Bonnet
Roof
Tailgate/boot
NS sill
OS sill
NS sliding door
OS sliding door
Front bumper
Back bumper
Motorbike tank
问题:
如果我在使用String desc = d.damage.getDescription().trim(); 时从数据库中检索 1 个值,则上述内容将正常工作,但是在大多数情况下,如前所述,它将大于 1,在这种情况下,代码将不起作用,我不确定我错过了什么。
完整代码
String desc = d.damage.getDescription().trim();
Log.d("checkbox Op #1",desc);
for (int i=0; i<=19; i++)
{
String sel5 = allCheckBoxes[i].getText().toString().trim();
Log.d("checkbox Op #2", sel5);
if (allCheckBoxes[i].getText().toString().trim().equals(desc))
{
allCheckBoxes[i].setChecked(true);
Log.d("checkbox Op #3", allCheckBoxes[i].getText().toString());
}
}
【问题讨论】:
-
if(desk.contains(allCheckBoxes[i].getText().toString())) {..set checked...} else {..set unchecked.}
标签: java android for-loop checkbox