2010-11-24 8 views
0

JDE 4.6.1でBlackBerryプロジェクトを開発中です。リストに項目を追加するときに問題が、NullPointerExceptionがメソッドからスローされることmeasureListRowBlackBerry ObjectListField

NPEの呼び出しスタック:

CustomerListField(ObjectListField).measureListRow(ListField, int, int) 
CustomerListField(ListField).layout(int, int) 
CustomerListField(ObjectListField).layout(int, int) 
VList(Manager).layoutChild(Field, int, int)

  • db_.getDataAccess() - データベース
  • getListCount - リスト内の項目数を取得する
  • CustomerListItem - リスト項目の構造

し、関連するコード:

public class CustomerListField extends ObjectListField implements ListFieldCallback, ChangeListener { 

    private PagedDataFetcher dataFetcher = new CustomerListPagedDataFetcher(); 

    … 

    public CustomerListField() { 
     try { 
      super.set(new Object[db_.getDataAccess().getListCount()]); 
     } catch (Throwable e) { 
     } 
    } 

    public void drawListRow(ListField listField, Graphics g, int index, int y, 
          int width) { 
     CustomerListItem currentRow = (CustomerListItem) get(listField, index); 
     … 
    } 

    public Object get(ListField list, int index) { 
     try { 
      return dataFetcher.getRowAtIndex(index); 
     } catch (Throwable e) { 
      return null; 
     } 
    } 

// To obtain the data 
public class CustomerListPagedDataFetcher extends PagedDataFetcher { 
    protected Vector get(int from, int to) throws Exception { 
     return DataAccess.getDataAccess().getLists(from, to); 
    } 
} 


/** 
* layout for list 
*/ 
final class VList extends VerticalFieldManager { 
    private final ObjectListField list; 
    int maxHeight = Display.getHeight() - getFont().getHeight() * 2 - 5; 

    VList(ObjectListField list) { 
     super(Manager.VERTICAL_SCROLLBAR | Manager.VERTICAL_SCROLL); 
     this.list = list; 
    } 

    public int getPreferredHeight() { 
     return 45 * list.getSize(); 
    } 

    protected void sublayout(int width, int height) { 
     super.sublayout(width, height); 
     setExtent(width, maxHeight); 
    } 
} 

答えて

0

あなたはmeasureRowListでNullPointerExceptionが取得している場合は、私が見たい最初の場所は、null値が間接参照されているかを確認するために、そのメソッドのソースです。あなたはそのメソッドのソースを含まないように見えます。

+0

このメソッドは、コアプラットフォームのネイティブです。その実装が見えません。 –