2009-07-27 3 views
2

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

リストから選択された(チェックされた)アイテムをすべて取得し、ベクターに入力する必要があります。

私はすべての選択項目を取得していない、私は現在のフォーカスがある項目だけを取得しています。

ナレッジベースの記事に従ってチェックボックスを使ってlistfieldを実装しています。

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

答えて

3

私はundestoodとして、サンプルは次にあなたがListFieldCallbackが実装されているクラスにベクトルを追加することができますHow To - Create a ListField with check boxes

です:

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を使用する場合は、iterat画面(または任意のマネージャ)のすべてのフィールドを超えるEおよびそのチェックボックスフィールドは、その値取るかどうかを確認:サンシャ-M @

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; 
    } 
} 
+0

時間内にすべての項目を選択する方法listall.plzボタンをクリックするとリストフィールドが表示されます。 – user1213202

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); 
       } 
     } 
    } 
} 
関連する問題