gpt4 book ai didi

android - notifyDataSetChange 不适用于 RecyclerView

转载 作者:IT老高 更新时间:2023-10-28 22:06:38 25 4
gpt4 key购买 nike

我正在使用 Android 的新 RecyclerView,但每当我调用“通知”方法之一时,我都无法让我的自定义适配器刷新。

我尝试调用 notifyDataSetChanged、notifyItemRangeInserted 和 notifyItemInserted,但它们似乎都不起作用。

这是我的自定义适配器的代码。我基本上是在尝试刷新字符串列表:

package com.mycompany.myapp.adapters;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.mycompany.myapp.R;

import java.util.List;

public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {

private List<String> mDataset;

public FeedAdapter(List<String> dataset) {
super();
mDataset = dataset;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int i) {
LinearLayout v = (LinearLayout) LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item_feed, parent, false);
v.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.setText(mDataset.get(position));
}

@Override
public int getItemCount() {
return mDataset.size();
}

public void setDataset(List<Status> dataset) {
mDataset = dataset;
// This isn't working
notifyItemRangeInserted(0, mDataset.size());
}

public static class ViewHolder extends RecyclerView.ViewHolder {
private TextView mFeedText;

public ViewHolder(View v) {
super(v);
mFeedText = (TextView) v.findViewById(R.id.feed_text);
}

private void setText(String text) {
mFeedText.setText(text);
}
}
}

还有其他人有这个问题吗?

谢谢!

最佳答案

我的问题是我没有在主线程上通知更改,因此更改不是立即可见的。与 here 指出的问题相同.

关于android - notifyDataSetChange 不适用于 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24495542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com