首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blackberry -通过复选框从列表中获取选中项目

Blackberry -通过复选框从列表中获取选中项目
EN

Stack Overflow用户
提问于 2009-07-27 04:07:36
回答 2查看 3.2K关注 0票数 2

如何从列表中获取所有选中的项?

我需要从列表中获取所有选中(选中)的项,并填充一个向量。

我没有获得所有选定的项目,我只获得当前焦点所在的项目。

根据知识库文章,我正在使用复选框实现listfield。

如果我使用getSelection(),它将返回当前突出显示的列表行索引,而不是所有已检查的列表行索引。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-27 05:56:56

据我所知,样本是How To - Create a ListField with check boxes

然后,您可以将向量添加到实现ListFieldCallback的类:

代码语言:javascript
复制
private Vector _checkedData = new Vector();
public Vector getCheckedItems() {
        return _checkedData;
    }

并以这种方式更新drawListRow:

代码语言:javascript
复制
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);
}

如果你想在自定义CheckBoxField中使用VerticalFieldManager,你可以遍历屏幕上的所有字段(或者任何管理器),检查它的复选框字段,然后取一个值:

代码语言:javascript
复制
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;
    }
}
票数 3
EN

Stack Overflow用户

发布于 2012-05-02 12:51:14

@sandhya-m

代码语言:javascript
复制
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);
                }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1186383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档