对话框中的Android ListView - nullpointerexception

时间:2011-12-13 15:04:48

标签: android

在菜单项上单击,我想弹出一个对话框。

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 08:58:43.968:DEBUG / Testing(3563):在getACLookUpdialog中:错误是:java.lang.NullPointerException

查询正在获取数据。我试图将diff查询放在我的其他应用程序中。 aclookup.xml有一个listview。 aclookup_listitem只有一个textview。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

首先;当您使用Log记录错误消息时,请调用e.printStackTrace()以获取异常的所有详细信息(例如,它出现在哪一行)。

您在

上收到错误消息
lv.setAdapter(adapter1);

因为lv为空。

我假设ListView存在于对话框布局(R.layout.aclookup)中,因此它位于您要搜索ListView的对话框中:

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