Вопрос по user-interface, blackberry, java-me, listfield – Blackberry - получить отмеченные элементы из списка с флажками

2

Как можно выбрать все отмеченные элементы из списка?

Мне нужно получить все выбранные (отмеченные) элементы из списка и заполнить вектор.

Я не получаю все выбранные предметы, я получаю только тот предмет, на котором сейчас находится фокус.

Я реализую список полей с флажками в соответствии со статьей базы знаний.

Если я использую getSelection (), он возвращает мне текущий подсвеченный индекс строки списка, а не все, что было проверено.

Ваш Ответ

2   ответа
0

@ Сандхйа-м

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);
                }
        }
    }
}
3

Как я понял, образецКак - Создать ListField с флажками

Затем вы можете добавить Vector в класс, где реализован 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, вы можете перебрать все поля на экране (или любого менеджера) и проверить, является ли его & apos; установите флажок, затем примите значение:

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;
    }
}
как выбрать все элементы за раз в поле списка при нажатии на кнопку selectall.plz, если у кого-то есть представление о htat, дайте советы.

Похожие вопросы