Android 如何检查Listview是否为空

Android 如何检查Listview是否为空,android,android-listview,parse-platform,Android,Android Listview,Parse Platform,“我的活动”查询我的解析数据库,然后按查询结果返回数据。数据以名称的形式存储在listview中。但是我不知道如何检查listview是否为空。我想让它发布一个警报,说明列表视图在它所属的事件下为空。这是我的活动 public class OfferPage extends Activity { String obj; ProgressDialog mProgressDialog; @Override protected void onCreate(Bundle

“我的活动”查询我的解析数据库,然后按查询结果返回数据。数据以名称的形式存储在listview中。但是我不知道如何检查listview是否为空。我想让它发布一个警报,说明列表视图在它所属的事件下为空。这是我的活动

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);
    }
公共类OfferPage扩展活动{
字符串对象;
进程对话框;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u offer\u页面);
Intent i=getIntent();
obj=i.getStringExtra(“RestName”);
大众主义者(obj,Restrant);
}
私有void populateList(最终字符串值、最终字符串键){
ParseQueryAdapter.QueryFactory=新建ParseQueryAdapter.QueryFactory(){
@凌驾
@SuppressWarnings({“unchecked”,“rawtypes”})
公共ParseQuery创建(){
ParseQuery=新的ParseQuery(“报价”);
查询。whereEqualTo(键,值);
返回查询;
}
};
ParseQueryAdapter=新的ParseQueryAdapter(
这家工厂);
adapter.setTextKey(“要约”);
addOnQueryLoadListener(新的OnQueryLoadListener(){
@凌驾
公共无效加载(){
mProgressDialog=新建进度对话框(OfferPage.this);
mProgressDialog.setTitle(“搜索报价”);
设置消息(“加载…”);
mProgressDialog.setUndeterminate(false);
mProgressDialog.show();
}
@凌驾
已加载公共void(列出对象,异常e){
mProgressDialog.disclose();
}
});
最终ListView ListView=(ListView)findViewById(R.id.offerList);
setAdapter(适配器);
}
我的主要问题是,如果列表是空的,我似乎不知道该把支票放在哪里。有什么建议吗

数据以名称的形式存储在listview中

不完全是这样。ListView显示您的数据。数据本身存储在其他地方。使用
Adapter
将ListView与数据绑定,以便查看是否有任何数据需要通过调用

数据以名称的形式存储在listview中


当然,不是这样。ListView显示您的数据。数据本身存储在其他地方。ListView与数据的绑定是通过
适配器完成的,因此要查看是否有任何数据,您只需通过调用查询适配器,使用方法setEmptyView,该方法将视图设置为显示适配器是否为空。

使用方法setEmptyView which将视图设置为显示适配器是否为空。

您可以使用适配器执行此操作,但必须执行您的adapter.getCount(),这应该会给出listview中元素的数量,因为当您填充listview时,您真正要做的是从适配器输入数据并创建该数据的列表项。

您可以通过使用适配器来实现这一点,您必须执行adapter.getCount(),这将为您提供listview中元素的数量,因为当您填充listview时,您真正做的是从适配器输入数据并创建该数据的列表项。

您必须控制适配器是否为null,而不是列表视图,因为适配器持有这些值

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

您必须控制适配器是否为null,而不是列表视图,因为适配器持有这些值

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