2012-05-11 4 views
2

Я использую Blackberry Plug-in, и я использую богатые списки ежевики. Я хочу, чтобы списки отображались столько же раз, сколько записей в таблице базы данных. Я использую код ниже, но он отображает только одно имя в виде списка. Мне нужно показать все записи в базе данных в виде списка ... Просьба помочь мне ..Добавление нескольких значений из базы данных в RichList Blackberry

Я уже использовал list.add(); внутри цикла for, но он показывает Exception: java.lang.IllegalStateException: поле добавлено в диспетчер, пока оно уже родительское.

 public static void richlistshow(){ 

    String name = null; 


    list = new RichList(mainManager, true, 2, 0); 

    Bitmap logoBitmap = Bitmap.getBitmapResource("delete.png"); 
    delete = new BitmapField(logoBitmap, Field.FIELD_HCENTER); 

    for (int c = 0; c < target_list.size();c++){ 

     City tar_city = new City(); 
     tar_city = (City)target_list.elementAt(c); 

     name = tar_city.get_city_name().toString(); 

     } 

      //adding lists to the screen 
    list.add(new Object[] {delete,name,"time-date"}); 

} 

ответ

1

Вы не указали полные коды, с которыми работаете. Но следующий код может помочь вам избавиться от IllegalStateException. Вы добавляли один и тот же экземпляр BitmapField для каждой записи списка, что вызвало исключение.

public static void richlistshow() { 
    final Bitmap logoBitmap = Bitmap.getBitmapResource("delete.png"); 

    list = new RichList(mainManager, true, 2, 0); 

    for (int c = 0; c < target_list.size(); c++) { 
     // create a new BitmapField for every entry. 
     // An UI Field can't have more than one parent. 
     final BitmapField delete = new BitmapField(logoBitmap, Field.FIELD_HCENTER); 
     City tar_city = (City) target_list.elementAt(c); 
     final String name = tar_city.get_city_name().toString(); 
     // add to list 
     UiApplication.getUiApplication().invokeLater(new Runnable() { 
      public void run() { 
       list.add(new Object[] { delete, name, "time-date" }); 
      } 
     }); 
    } 
} 
+0

Rupak .. спасибо за ответ ......... Я сожалею, что не определил проблему правильно .................... ............................ вот что я хочу сделать: - добавление кнопки «удалить», название поля из базы данных и некоторое значение времени в списке richlist ....... Значения, введенные внутри списка richlist, должны быть всеми значениями из базы данных, то есть всем «именем», и вместе с этим я хочу выбрать этот список, чтобы использовать его на некоторых другое место ..... если возможно, выбрать богатый список и получить доступ к его содержимому. –

+0

Я не уверен, что вы можете добавить кнопку («удалить») в RichList. И я не получил вашу проблему хорошо. У вас проблема с чтением данных из базы данных? Если вы можете их прочитать, возможно, их можно будет связать с RichList, а затем вернуть их обратно. – Rupak