2011-11-25 66 views
2

如何在沒有列表視圖項目時顯示空列表視圖的警報對話框。請找到下面有三個文本字段的圖像。當列表中沒有記錄/不匹配記錄時,我必須實現空列表視圖。Android - 用於顯示空白列表視圖的顯示警報對話框

列表視圖實現如下:

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

我,以示對empListView警告對話框。請幫我拿個樣品碼/鏈接。

+1

你以前試過什麼,你有什麼特別的問題嗎?一般來說,這有助於告訴我們你面臨的問題,這樣我們可以指導你解決問題,下次你就會知道如何自己解決問題。 –

+1

你怎麼設置適配器,顯示代碼..' –

+1

'CursorAdapter adaptr = new MyCursorAdapter(getApplicationContext(),R.layout.listview,cdata,fields,names);'其中** cdata **是一個返回值的遊標來自查詢,**領域**是列表視圖實體和**名稱**是存儲列表視圖項目的數組。 –

回答

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,謝謝,它的工作... –

1

我認爲你是在setadapter方法中壓縮arraylist或其他數據如果你正在使用arraylist,那麼你必須在調用setadapter方法之前檢查arraylist的大小。

+0

是的,我傳遞數組列表中的set adapter方法。當數組列表爲空時,請幫助我提供有關如何顯示警報對話框的示例代碼。 –

+1

if(a.size()> 0) \t \t { \t \t lv =(ListView)findViewById(R.id.frendlist); \t \t lv.setAdapter(new ListAdapter(this,R.id.frendlist,a)); \t \t} \t \t其他 \t \t { \t \t \t builder.setMessage( 「你有沒有朋友」) \t \t \t。setCancelable(假) \t \t \t .setPositiveButton( 「OK」,新DialogInterface.OnClickListener() \t \t \t { \t \t \t \t公共無效的onClick(DialogInterface對話框,INT ID) \t \t \t \t { \t \t \t \t \t \t \t \t \t} \t \t \t \t}); \t \t \t \t \t \t \t AlertDialog警報= builder.create(); \t \t \t alert.show(); \t} – Gensheriff

+0

謝謝,Gensheriff –

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

根據我的意見,不需要檢查arraylist或適配器項目數量的大小。

而不是顯示警報對話框,您可以在列表視圖上顯示消息「對不起找不到記錄」消息。同樣你必須使用ListView的setEmptyView()方法來設置空視圖。

例如:

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

+1,是的,它的工作... –

+1

@avadhani是親愛的,還要別的嗎。 –

+1

你能幫我用數據庫查詢的特殊字符記錄進行搜索嗎? –

2

我想你paasing的ArrayList或者setadapter方法一些其他的數據,如果你正在使用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(); 
    }