2014-09-05 102 views
1

我的活動查詢我的分析數據庫,然後重新查詢數據。數據以名稱的形式存儲在列表視圖中。但我不知道如何檢查列表視圖是否爲空。我希望它發佈警報,說明列表視圖在事件發生時是空的。這是我的活動如何檢查列表視圖是否爲空

public class OfferPage extends Activity { 
    String obj; 
    ProgressDialog mProgressDialog; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_offer_page); 

     Intent i = getIntent(); 
     obj = i.getStringExtra("RestName"); 
     populateList(obj, "Restraunt"); 

    } 

    private void populateList(final String Value, final String Key) { 
     ParseQueryAdapter.QueryFactory<ParseObject> factory = new ParseQueryAdapter.QueryFactory<ParseObject>() { 

      @Override 
      @SuppressWarnings({ "unchecked", "rawtypes" }) 
      public ParseQuery create() { 
       ParseQuery query = new ParseQuery("Offers"); 
       query.whereEqualTo(Key, Value); 
       return query; 
      } 
     }; 
     ParseQueryAdapter<ParseObject> adapter = new ParseQueryAdapter<ParseObject>(
       this, factory); 
     adapter.setTextKey("Offer"); 
     adapter.addOnQueryLoadListener(new OnQueryLoadListener<ParseObject>() { 

      @Override 
      public void onLoading() { 
       mProgressDialog = new ProgressDialog(OfferPage.this); 
       mProgressDialog.setTitle("Searching for Offers"); 
       mProgressDialog.setMessage("Loading..."); 
       mProgressDialog.setIndeterminate(false); 
       mProgressDialog.show(); 
      } 

      @Override 
      public void onLoaded(List<ParseObject> objects, Exception e) { 
       mProgressDialog.dismiss(); 
      } 
     }); 

     final ListView listView = (ListView) findViewById(R.id.offerList); 
     listView.setAdapter(adapter); 
    } 

我的主要問題我似乎無法弄清楚如果列表是空的檢查。有什麼建議麼?

回答

0

數據以名稱的形式存儲在listview中。

嗯,不是真的。 ListView顯示你的數據。數據本身存儲在其他地方。使用數據綁定列表視圖與Adapter這樣做,看看是否有你只需要通過調用getCount()

0

使用方法setEmptyView其設置視圖顯示適配器是否爲空查詢適配器的任何數據。

1

你可以通過使用你的適配器來做到這一點,你必須做youradapter.getCount(),它應該給你listview中元素的數量,因爲當你填充listview時你真正在做的是進入來自適配器的數據並創建該數據的列表項。

6

您必須控制適配器是否爲空,而不是列表視圖,導致適配器保存值。

 if (adapter== null) { 
      adapter= new ParseQueryAdapter(this,getElements()); 
      eList.setAdapter(adapter); 
     } else { 
      adapter.addAll(getElements()); 
     }