2

我正在使用黑莓插件,我正在使用黑莓的丰富列表。我想让列表出现的次数与数据库表中的条目相同。我正在使用下面的代码,但它在列表视图中只显示一个名称。我需要将数据库中的所有条目显示到列表视图中...请帮助我..

我已经用过 list.add(); 在 for 循环内,但它显示 Exception: java.lang.IllegalStateException: Field added to a manager while it has been parented。

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

}
4

1 回答 1

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" });
            }
        });
    }
}
于 2012-05-14T21:00:11.553 回答