【问题标题】:RecyclerView is empty or not [duplicate]RecyclerView 是否为空 [重复]
【发布时间】:2018-06-13 14:47:50
【问题描述】:

我如何知道我的RecyclerView 是否为空? 我想显示一个对话框供用户显示: 这部分没有任何信息

    recyclerView = (RecyclerView) findViewById(R.id.recycler_view_congress);
    data_list  = new ArrayList<>();
    load_data_from_server(0);
    gridLayoutManager = new GridLayoutManager(this,1);
    recyclerView.setLayoutManager(gridLayoutManager);
    adapter = new CustomAdapter4(this,data_list);
    recyclerView.setAdapter(adapter);

【问题讨论】:

  • 当您用来向其提供数据的列表为空时,您的 RecyclerView 为“空”。避免使用对话框,直接在应该显示 RecyclerView 的地方显示消息
  • 这能回答你的问题吗? How to detect if RecyclerView is empty?

标签: android mysql android-recyclerview


【解决方案1】:

您可以检查您的 adapter.getItemCount() 是否返回 0。如果是 0,那么您的 recyclerView 没有要显示的项目。

【讨论】:

  • 感谢您的帮助!但这段代码总是给零。不知道为什么!?
【解决方案2】:

使用 CustomAdapter4 类的 getItemCount() 方法。参考这里:https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#getitemcount

【讨论】:

    【解决方案3】:

    您需要在适配器中重写此方法

    @Override
    public int getItemCount() {
        return dataSet.size(); // Where dataSet is the list of your items (data_list in your code)
    }
    

    然后你可以这样检查recycler是否为空

    if (adapter.getItemCount() == 0)
    

    【讨论】:

      【解决方案4】:

      你可以使用public int getItemCount()

      说明:返回适配器持有的数据集中的项目总数。

      返回:此适配器中的项目总数

      这是一个例子:

      if ( adapter.getItemCount() == 0 ) {
                  // show your dialog 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-15
        • 2015-01-29
        • 2013-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        • 2021-08-12
        相关资源
        最近更新 更多