2012-03-07 12 views
0

application.iで選択したすべてのメニュー項目をクリックしたときにリストフィールドのすべての項目を一度に選択したい私のようなコード..ブラックベリーのリストフィールドのチェックボックスのすべてのメニュー項目を選択するときに一度にすべての項目を選択する方法

selectall = new MenuItem("Selectall", 200, 10){ 
      public void run(){ 
      int elementLength = _elements.length; 
      for(int count = 0; count < elementLength; ++count) 
       { 
      _listData.addElement(new ChecklistData(_elements[count], true)); 
      listField.insert(count); 
       } 
      } 
     }; 

が、この新しいリストは、IAMがやってあなたのideas.andを与えるthat.please解決するためにchecked.howで来ている古いリストalso.below古いリストで結果を取得IAM間違いを事前にお詫び申し上げます。

答えて

0

感謝を。 java.lang.ClassCastException.the結果は単にリストの要素が同じで変更されません:私はあなたのcode.but IAMこの例外のような例外があるばかりで試してみました。.. now..theソリューションです

selectall = new MenuItem("Selectall", 200, 10){ 
      public void run(){ 

       int elementLength = _elements.length; 
       for(int count = 0; count < elementLength; ++count) 
       { 
        _listData.setElementAt(new ChecklistData(_elements[count], true), count); 

       } 
      } 
     }; 
+0

あなたのメソッドは動作しますが、メモリを無駄にしています。確認するチェックボックスの値を設定するために、その 'ChecklistData'項目の2番目のコピーを作成しています。はい、Javaのガベージコレクタはそれをきれいにしますが、あなたは非常に簡単なことを介して電話とあなたのアプリケーションのための余分な作業を作成しています。私はまだ新しいインスタンスを作成することなくChecklistDataのチェックボックスをチェックするように設定する必要があると言います。 –

0

listField.insertを使用すると、新しいChecklistDataオブジェクトがリストに追加されます。だからこそ、あなたは以前のもののまったく新しいリストを手に入れているのです。 _listDataに追加する代わりに、ChecklistDataをチェックするように設定してください。

それはカスタムクラスだと思われますので、私はあなたがそれを行うために何が必要かわかりません。あなたは_listDataCheckboxFieldsを使用した場合、あなたはこのようにそれを行うことができます:あなたのすべての提案のための

for (Enumeration e = _listdata.elements() ; e.hasMoreElements() ;) { 
    CheckboxField c = (CheckboxField)e.nextElement(); 
    c.setChecked(true); 
} 
+0

を私の問題を解決しました前と同じです.iは真実に設定されていませんでした。 – user1213202

+0

ur answer.iがありがとうございました。solution.iがこのようにしました.. _listData.setElementAt(新しいChecklistData(_elements [count]、true)、count);今私のために正しく働いています。 – user1213202

関連する問題