2016-03-03 26 views
0

class發現擴展RecyclerView.Adapter < ...>手柄的NullPointerException沒有記錄在一個ArrayList

@Override 
public int getItemCount() { 
    return arrayListPacks == null ? 0 : arrayListPacks.size(); 
    // return 5; 
} 

要獲得唯一5條ArrayList,我用:

return 5; 

但是,我得到NullPointer異常,當沒有找到記錄。

那麼,我該如何處理這個異常?

我想顯示最大5條記錄,如果存在(或多個)其他處理NPE

+4

請發佈logcat –

+4

如果您檢查arrayListPacks == null && arrayListPacks.isEmpty()'? –

+2

你使用前初始化了數組列表嗎?例如。 Arraylist arrayListPacks = new Arraylist(); – ManthanB

回答

1

嘗試做這樣的事情

@Override 
public int getItemCount() { 

    return arrayListPacks == null ? 0 : (arrayListPack.size() > 5? 5: arrayListPacks.size()); 
} 

所以如果列表> 5只返回5,否則,返回的大小。

但是對於nullpointerexception,你需要檢查logcat,你會發現它發生的地方和原因。檢查你初始化適配器的位置並給出列表。

0

試試這個.. :)

@Override 
public int getItemCount() { 
    return arrayListPacks == null ? Collections.<ClassName> emptyList().size(): arrayListPacks.size(); 
} 
0

我同意ManthanB因爲一個空的ArrayList意味着集合名稱arrayListPacks指向一個未分配的位置null。這與指向沒有任何內容的有效分配位置完全不同。所以使用ArrayList分配arrayListPacks = new ArrayList();現在arrayListPacks將公開方法來添加新的元素