adapter - Android RecyclerView 不会更新内容更改

标签 adapter android-recyclerview

我有一段代码可以添加/更新驻留在回收站 View 中的卡片 View 的内容。

但是,即使我已经调用它也不会更新内容
viewAdapter.notifyItemChanged(位置); 和 viewAdapter.notifyItemChanged(位置);

我尝试在 runOnUiThread 方法中调用它,但它仍然没有更新。我尝试进入 onBindViewHolder() 并在内部更新值,但屏幕上的显示不会更新。

知道为什么吗? 下面是我的一些代码:

    rvTransactionItems = (RecyclerView) mView.findViewById(R.id.rvTransactionItems);
    rvTransactionItems.setHasFixedSize(true);

    LinearLayoutManager llm = new LinearLayoutManager(getParentActivity());
    rvTransactionItems.setLayoutManager(llm);

    detailAdapter = new DetailAdapter();
    rvTransactionItems.setAdapter(detailAdapter);




       @Override
        public void onBindViewHolder(DetailViewHolder viewHolder, int i) {

            StockCount count = addedItemCount.get(i);

            Integer expectedQty = count.getExpectedQuantity();
            Integer quantity = count.getQuantity();

            viewHolder.tvArticleNumber.setText(articleNumber);
            viewHolder.tvStockCode.setText(stockCode);

            String countStr = quantity + " / " + expectedQty;
            viewHolder.tvCount.setText(countStr);

        }

最佳答案

我想出了解决问题的方法。问题的根源是我调用必须通知适配器的处理程序(protected Handler updateUiHandler = new Handler(Looper.getMainLooper());)的函数在另一个线程中。所以基本上我试图在另一个线程的主线程上运行一些东西。所以我必须向上调用层次结构来调用方法 runOnUiThread。这将解决问题。

所以总而言之,notifyChange 方法必须在主线程上运行才能使更改生效!

关于adapter - Android RecyclerView 不会更新内容更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30369913/

相关文章:

java - 如何在回收器 View 适配器中获取上下文

java - Android RecyclerView 网格水平和垂直居中项目而不滚动

android - 什么时候使用 RecyclerView setHasFixedSize(true)?

java - 从 Adapter 中刷新整个 RecyclerView

design-patterns - 不使用接口(interface)的适配器模式

notifyDataSetChanged 后未调用 android getChildView

android - 如何从下载服务更新 ListView 的行

android - 从 RecyclerView 中移除项目并将其插入到另一个位置

android - fragment 中奇怪的RecyclerView滞后

eclipse - 如何卸载服务器适配器?