2011-12-13 80 views
1

在菜單項上點擊,我想彈出一個對話框。對話框中的Android ListView - 空指針異常

private void getAcLookUpDialog() 
{ 
try 
    { 
     Dialog dlg = new Dialog(this); 
     dlg.setContentView(R.layout.aclookup); 
     dlg.setTitle(Html.fromHtml("<b><H2>" + "Select A/C# " + "</H2></b>")); 
     startManagingCursor(cur); 
     cur = actable.getAllAC(); 
     Log.d("Testing", "No of AC are " + cur.getCount()); 
     ListView lv = (ListView) findViewById(R.id.aclookuplist); 

     SimpleCursorAdapter adapter1 = new SimpleCursorAdapter (this, R.layout.aclookup_listitem, cur, new String[] {"AC"}, new int[] {R.id.acactext}); 
     lv.setAdapter(adapter1); 
     dlg.show(); 
    } 
    catch(Exception e) 
    { 
     Log.d("Testing", "In getACLookUpdialog: error is: "+ e.toString()); 
    } 

} 

它拋出

八月12日至13日:58:43.968:DEBUG /測試(3563):在getACLookUpdialog:錯誤是:顯示java.lang.NullPointerException

該查詢獲取數據。我試圖把我的其他應用程序工作的差異查詢。 aclookup.xml只有一個listview。 aclookup_listitem只有一個textview。

我在做什麼錯?

+0

你已經登錄你的錯誤後,消息,做e.printStackTrace();以獲得更詳細的錯誤信息(例如,您從哪裏獲取錯誤)。 – Jave

+0

好的。我是android新手。我補充說。現在我應該在哪裏看到它。在Logcat中,錯誤標籤? – sam

+0

當使用'printStackTrace()'顯示時,它將顯示爲警告類別下的一大塊文本。 – Jave

回答

2

首先;當您使用Log記錄錯誤消息時,請致電e.printStackTrace()以獲取有關例外情況的所有詳細信息(例如,在發生什麼行時)。

你上

lv.setAdapter(adapter1); 

你的錯誤是lv爲空。

我認爲ListView控件在對話框佈局(R.layout.aclookup)存在,所以它在對話框中你要搜索的ListView:

ListView lv = (ListView) dlg.findViewById(R.id.aclookuplist); 
+0

IT W O R K E D !!!!非常感謝。 – sam