如何在回收站视图中检测项目计数

时间:2018-09-10 23:34:19

标签: android android-recyclerview

我正在尝试在列表视图中检测类似listview.getCount()的列表项,但在回收者视图中却可以检测到。所以我用这段代码,

int count = 0;
if (adapter != null) {
    count = adapter.getItemCount();
}

进行检测。实际上它可以检测到列表中有多少个项目,但是如果例如我的代码,它不会改变某些内容

adapter = new AssetsAdapter(data_map);
list = (RecyclerView) getView().findViewById(R.id.list_diperbaiki);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
list.setLayoutManager(mLayoutManager);
list.setItemAnimator(new DefaultItemAnimator());

// LoadMore button
load.setText("Load More");

list.addItemDecoration(new DividerItemDecoration(getActivity().getApplicationContext(), LinearLayoutManager.VERTICAL));
list.setAdapter(adapter);
int count = 0;
if (adapter != null) {
    count = adapter.getItemCount();
}
Log.d("items", "" + count);
if (count < 9) {
    load.setVisibility(View.GONE);
}

load.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // Starting a new async task
        new DiperbaikiFragment.loadMoreListView().execute();
    }
});

当列表项小于9时,我希望load(即按钮)消失,但不会发生。如果还有其他方法,或者我在代码中做错了什么,请提供帮助。

1 个答案:

答案 0 :(得分:0)

请检查adapter = new AssetsAdapter(data_map);,检查此data_map对象的默认大小。

如果最初是data_map.size() > 9,则下面的逻辑是false

if (count < 9) {
            load.setVisibility(View.GONE);
        }

我认为这是您的代码存在的问题。