如果没有listview项,如何显示空列表视图的警告对话框。请找到下面有三个文本字段的图像。当列表中没有记录/不匹配的记录时,我必须实现空列表视图。
列表视图实现如下:
ListView empListView;
empListView = (ListView)findViewById(R.id.list1 );
我必须显示empListView的警告对话框。请帮我处理示例代码/链接。
答案 0 :(得分:2)
根据我的意见,无需检查arraylist或适配器项目数量的大小。
您可以在列表视图上显示消息“抱歉没有找到记录”消息,而不是显示警告对话框。为此,您必须使用ListView的setEmptyView()
方法设置空视图。
例如:
listViewFriends.setEmptyView(findViewById(R.id.empty));
答案 1 :(得分:2)
我认为你在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();
}
答案 2 :(得分:1)
我认为你在setadapter方法中使用arraylist或其他一些数据如果你使用arraylist然后你必须在调用setadapter方法之前检查arraylist的大小。
答案 3 :(得分:1)
if(cdata.getCount()>0)
{
CursorAdapter adapter = new MyCursorAdapter( getApplicationContext(), R.layout.listview, cdata, fields, names);
listview.setAdapter(adapter);
}
else
{
//create dialog here
}
答案 4 :(得分:1)
这完全取决于你如何实现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));
}
上面的代码尚未经过测试。但是,如果进行微调,我可能会忘记一些事情。