如何从列表中检索所有已检查的项目?Blackberry - 用复选框从列表中检查项目
我需要从列表中获取所有选中(选中)的项目并填充一个向量。
我没有得到所有选定的项目,我只得到当前焦点所在的项目。
我按照知识库文章使用复选框实现listfield。
如果我使用getSelection(),它会返回当前突出显示的列表行索引,而不是所有已经检查过的行。
如何从列表中检索所有已检查的项目?Blackberry - 用复选框从列表中检查项目
我需要从列表中获取所有选中(选中)的项目并填充一个向量。
我没有得到所有选定的项目,我只得到当前焦点所在的项目。
我按照知识库文章使用复选框实现listfield。
如果我使用getSelection(),它会返回当前突出显示的列表行索引,而不是所有已经检查过的行。
正如我undestood,样品为How To - Create a ListField with check boxes
然后你就可以添加矢量到ListFieldCallback实现类:
private Vector _checkedData = new Vector();
public Vector getCheckedItems() {
return _checkedData;
}
和更新drawListRow这样:
if (currentRow.isChecked())
{
if(-1 ==_checkedData.indexOf(currentRow))
_checkedData.addElement(currentRow);
rowString.append(Characters.BALLOT_BOX_WITH_CHECK);
}
else
{
if(-1 !=_checkedData.indexOf(currentRow))
_checkedData.removeElement(currentRow);
rowString.append(Characters.BALLOT_BOX);
}
如果您将VerticalFieldManager与自定义CheckBoxField一起使用,则可以迭代E的屏幕(或任何经理)的所有领域,并检查其复选框字段,然后取一个值:
class List extends VerticalFieldManager {
...
public Vector getCheckedItems() {
Vector result = new Vector();
for (int i = 0, cnt = getFieldCount(); i < cnt; i++) {
Field field = getField(i);
if (field instanceof CheckboxField) {
CheckboxField checkboxField = (CheckboxField) field;
if (checkboxField.isChecked())
result.addElement(checkboxField);
}
}
return result;
}
}
@桑德亚米
class List extends VerticalFieldManager {
...
public void selectAll() {
for (int i = 0, cnt = getFieldCount(); i < cnt; i++) {
Field field = getField(i);
if (field instanceof CheckboxField) {
CheckboxField checkboxField = (CheckboxField) field;
checkboxField.setChecked(true);
}
}
}
}
如何选择在一个时间的所有项目一个listfield当点击按钮selectall.plz给你的建议,如果任何人有关于htat的想法。 – user1213202 2012-03-06 06:03:47