如何從列表中檢索所有已檢查的項目?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