Android - 空のListViewの警告ダイアログを表示する

リストビュー項目がない場合に空のリストビューの警告ダイアログを表示する方法。 3つのテキストフィールドを持つ下の画像を見つけてください。リストにレコード/不一致レコードがない場合は、空のリストビューを実装する必要があります。

リストビューは以下のように実装されています:

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

I have to show the alert dialog box for the empListView. Please help me with the samplecode/links.

2
cdata は、クエリから値を返すためのカーソルであり、 cdata は、 >フィールドはリストビューエンティティであり、名前はリストビューアイテムを格納する配列です。
追加された 著者 Avadhani Y,
@ avadhaniでは、cdata.getCount()> 0をチェックして、getCountが0より小さい場合はListが空であることを示すアクションを実行できます。
追加された 著者 Lalit Poptani,
何を前に試してみましたか?特に問題はありますか?一般的には、どの問題があなたの直面しているのかを私たちに伝えることができます。そうすれば、問題を解決する方法がわかり、次回は自分で解決する方法を知ることができます。
追加された 著者 Devin M,
あなたはどのようにアダプタを設定し、コードを表示しますか?
追加された 著者 Adil Soomro,

5 答え

私の意見によると、arraylistやアダプターのアイテム数のサイズを確認する必要はありません。

警告ダイアログを表示する代わりに、リストビューに "Sorry no records found"というメッセージだけを表示することができます。同じ場合は、 setEmptyView()を使用して空のビューを設定する必要があります。/code> メソッドを使用します。

例えば:

listViewFriends.setEmptyView(findViewById(R.id.empty));
2
追加された
+1、はい、それは働いた...
追加された 著者 Avadhani Y,
データベースクエリの特殊文字レコードで検索するのを手伝ってもらえますか?
追加された 著者 Avadhani Y,
@avadhaniはいいいえ、ダイアログやその他のものを表示する代わりに空のリストビューを表示するのがベストプラクティスです。
追加された 著者 Paresh Mayani,

私はあなたが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
追加された

私はあなたがsetadapterメソッドでarraylistや他のデータを嫌っていると思います。そして、あなたがarraylistを使用している場合は、setadapterメソッドを呼び出す前にarraylistのサイズをチェックする必要があります。

1
追加された
はい、私はセットのアダプタメソッドで配列リストを渡しています。配列リストが空の場合、警告ダイアログを表示する方法のサンプルコードを手伝ってください。
追加された 著者 Avadhani Y,
ありがとう、Gensheriff
追加された 著者 Avadhani Y,
if(a.size()> 0){lv =(ListView)findViewById(R.id.frendlist); lv.setAdapter(新しいListAdapter(this、R.id.frendlist、a)); } {{{}}){}} {}} {{{}}}} {{{}}}} { AlertDialogアラート= builder.create(); alert.show(); }
追加された 著者 Gensheriff,
if(cdata.getCount()>0)
{
    CursorAdapter adapter = new MyCursorAdapter( getApplicationContext(), R.layout.listview, cdata, fields, names);
    listview.setAdapter(adapter);
}
else
{
    //create dialog here
}
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));
}

上記のコードはテストされていません。しかし、マイナーな調整で作業する必要があります、私は何かを忘れている可能性があります。

1
追加された
+1、ありがとう、それは働いた...
追加された 著者 Avadhani Y,