Android – 显示空ListView的警报对话框

如果没有listview项,如何显示空列表视图的警报对话框。 请找到下面有三个文本字段的图像。 当列表中没有记录/不匹配的记录时,我必须实现空列表视图。

列表视图实现如下:

ListView empListView; empListView = (ListView)findViewById(R.id.list1 ); 

我必须显示empListView的警告对话框。 请帮我提供样本代码/链接。

这一切都取决于你如何实现setAdapter方法等。但这是一个例子:

 if(cdata.getCount()==0) { //empty, show alertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Search is empty") .setCancelable(true) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); } else { //Not empty, set the adapter or do what you want. empListview.setAdapter(new MyCursorAdapter( getApplicationContext(), R.layout.listview, cdata, fields, names)); } 

上面的代码还没有经过测试。 但是,如果进行微调,我可能会忘记一些事情。

我认为你在setadapter方法中调用arraylist或其他一些数据如果你使用arraylist然后你必须在调用setadapter方法之前检查arraylist的大小。

 if(a.size()>0) { lv = (ListView) findViewById(R.id.frendlist); lv.setAdapter(new ListAdapter(this, R.id.frendlist, a)); } else { builder.setMessage(" You Have no friends") .setCancelable(false) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { } }) ; AlertDialog alert = builder.create(); alert.show(); } 

根据我的意见,无需检查arraylist或适配器项目的大小。

您可以在列表视图上显示消息“抱歉没有找到记录”消息,而不是显示警告对话框。 为此,您必须使用ListView的setEmptyView()方法设置空视图。

例如:

 listViewFriends.setEmptyView(findViewById(R.id.empty)); 

我认为你在setadapter方法中调用arraylist或其他一些数据如果你使用arraylist然后你必须在调用setadapter方法之前检查arraylist的大小。

 if(cdata.getCount()>0) { CursorAdapter adapter = new MyCursorAdapter( getApplicationContext(), R.layout.listview, cdata, fields, names); listview.setAdapter(adapter); } else { //create dialog here }