在菜单项上单击,我想弹出一个对话框。
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。
我做错了什么?
答案 0 :(得分:3)
首先;当您使用Log记录错误消息时,请调用e.printStackTrace()
以获取异常的所有详细信息(例如,它出现在哪一行)。
您在
上收到错误消息lv.setAdapter(adapter1);
因为lv
为空。
我假设ListView存在于对话框布局(R.layout.aclookup)中,因此它位于您要搜索ListView的对话框中:
ListView lv = (ListView) dlg.findViewById(R.id.aclookuplist);