2

我試圖做出將使用AutoCompleteTextView並根據您輸入的內容從聯繫人讀取應用程序,所以它不具備對付一個巨大的數組。不幸的是,ArrayAdapter似乎不喜歡我。 這是我爲它的代碼:的Android ArrayAdapter空指針

private void updateAdapter(String[] nC) 
{ 

    autoAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, nC); 

    autoText.setAdapter(autoAdapter); 
} 

這將引發此:

WARN/Filter(16767): An exception occured during performFiltering()! 
java.lang.NullPointerException 
04-21 11:23:48.819: WARN/Filter(16190):  
at android.widget.ArrayAdapter$ArrayFilter.performFiltering(ArrayAdapter.java:437) 
04-21 11:23:48.819: WARN/Filter(16190):  
at android.widget.Filter$RequestHandler.handleMessage(Filter.java:234) 
04-21 11:23:48.819: WARN/Filter(16190):  
at android.os.Handler.dispatchMessage(Handler.java:99) 
04-21 11:23:48.819: WARN/Filter(16190):  
at android.os.Looper.loop(Looper.java:144) 
04-21 11:23:48.819: WARN/Filter(16190):  
at android.os.HandlerThread.run(HandlerThread.java:60) 

我真的不知道是怎麼回事。數控變量保存聯繫人的姓名投入自動完成,所以這不是問題..

+0

@ Elec0:你絕對相信nC在這一點上不是空的?嘗試在autoAdapter行中逐句通過調試器,並確保nC正確傳遞(即非空)。 – kcoppock 2011-04-21 18:49:54

+0

我絕對相信它不是。我嘗試了Log.e(「blah」,nC [0]);並返回聯繫人的姓名。 – Elec0 2011-04-21 18:57:22

+0

第二個想法:自動圖文集在哪裏定義?也許在這一點上它是空的?哪一條線突破,第一或第二? – kcoppock 2011-04-21 19:04:37

回答

1

基於上述意見交換的信息:檢查NC返回的數據。很有可能你有沒有名字的聯繫。

1

如果NC的他長度爲10的例子,你有它只是9個元素,你會得到異常。

Source

5

我發現這個問題。它由arrayadapter中的其中一個項引起的屬性具有'null'值。

就你而言,'nC'元素之一必須是'null'。嘗試在控制檯中顯示所有元素的列表,例如:System.out.println(index + ": " + nC[index]);,並查看其中一個是否爲空。

祝你好運!