Android - Отображение диалогового окна предупреждения для пустого ListView - PullRequest
2 голосов
/ 25 ноября 2011

Как отобразить диалоговое окно с предупреждением для пустого представления списка, когда нет элементов списка. Пожалуйста, найдите ниже изображение с тремя текстовыми полями. Я должен реализовать представление пустого списка, когда в списке нет записей / непревзойденных записей.

Представление списка реализовано следующим образом:

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

Мне нужно показать диалоговое окно с предупреждением для empListView. Пожалуйста, помогите мне с примером кода / ссылками.

Ответы [ 5 ]

2 голосов
/ 25 ноября 2011

Я думаю, что вы приостанавливаете arraylist или некоторые другие данные в методе setadapter. И если вы используете arraylist, то вам нужно проверить этот размер arraylist перед вызовом метода setadapter.

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 голосов
/ 25 ноября 2011

По моему мнению, не нужно проверять размер подсчета элементов массива или адаптера.

Вместо отображения диалогового окна с предупреждением, вы можете просто отобразить сообщение "Извините, записи не найдены" в списке просмотра.для того же самого вы должны установить пустое представление с помощью setEmptyView() метода ListView.

Например:

listViewFriends.setEmptyView(findViewById(R.id.empty));
1 голос
/ 25 ноября 2011
if(cdata.getCount()>0)
{
    CursorAdapter adapter = new MyCursorAdapter( getApplicationContext(), R.layout.listview, cdata, fields, names);
    listview.setAdapter(adapter);
}
else
{
    //create dialog here
}
1 голос
/ 25 ноября 2011

Все зависит от того, как вы реализуете метод 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));
}

Код выше не был проверен. Но стоит поработать с небольшими изменениями, я мог бы что-то забыть.

1 голос
/ 25 ноября 2011

Я думаю, что вы приостанавливаете arraylist или некоторые другие данные в методе setadapter. И если вы используете arraylist, то вам нужно проверить этот размер arraylist перед вызовом метода setadapter.

...