2

リストからチェックされたすべてのアイテムを取得するにはどうすればよいですか?

リストから選択 (チェック) されたすべての項目を取得し、ベクトルを設定する必要があります。

選択したすべてのアイテムを取得しているわけではなく、現在フォーカスされているアイテムのみを取得しています。

ナレッジベースの記事に従って、チェックボックス付きのリストフィールドを実装しています。

getSelection() を使用すると、現在強調表示されているリストの行インデックスが返されますが、すべてがチェックされているわけではありません。

4

2 に答える 2

3

私が理解していないので、サンプルはHow To - チェックボックス付きのListFieldを作成することです

次に、ListFieldCallback が実装されているクラスに Vector を追加できます。

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

カスタム CheckBoxField で VerticalFieldManager を使用する場合は、画面上のすべてのフィールド (または任意のマネージャー) を反復処理し、そのチェックボックス フィールドを確認してから、値を取得できます。

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;
    }
}
于 2009-07-27T05:56:55.503 に答える
0

@sandhya-m

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);
                }
        }
    }
}
于 2012-05-02T04:51:14.093 に答える