相关疑难解决方法(0)

如何更新RecyclerView适配器数据?

试图找出更新RecyclerView适配器的问题.

在我获得新的产品列表后,我尝试:

  1. 更新创建ArrayList的片段recyclerView,将新数据设置为适配器,然后调用adapter.notifyDataSetChanged(); 那没起效.

  2. 像其他人一样创建一个新的适配器,它适用于他们,但对我没有任何改变: recyclerView.setAdapter(new RecyclerViewAdapter(newArrayList))

  3. 创建一个Adapter更新数据的方法,如下所示:

    public void updateData(ArrayList<ViewModel> viewModels) {
       items.clear();
       items.addAll(viewModels);
       notifyDataSetChanged();
    }
    
    Run Code Online (Sandbox Code Playgroud)

    然后每当我想更新数据列表时,我都会调用此方法; 那没起效.

  4. 要检查我是否可以以任何方式修改recyclerView,并且我尝试删除至少一个项目:

     public void removeItem(int position) {
        items.remove(position);
        notifyItemRemoved(position);
    }
    
    Run Code Online (Sandbox Code Playgroud)

    一切都保持原样.

这是我的适配器:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> implements View.OnClickListener {

    private ArrayList<ViewModel> items;
    private OnItemClickListener onItemClickListener;

    public RecyclerViewAdapter(ArrayList<ViewModel> items) {
        this.items = items;
    }


    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
        this.onItemClickListener = onItemClickListener;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

238
推荐指数
9
解决办法
38万
查看次数

Android RecyclerView添加和删除项目

我有一个带有TextView文本框和十字按钮ImageView的RecyclerView.我在recyclerview外面有一个按钮,使十字按钮ImageView可见/消失.

我正在寻找从recylerview中删除项目,当按下该项目交叉按钮ImageView时.

我的适配器:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener, View.OnLongClickListener {

    private ArrayList<String> mDataset;
    private static Context sContext;

    public MyAdapter(Context context, ArrayList<String> myDataset) {
        mDataset = myDataset;
        sContext = context;
    }

    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_text_view, parent, false);

        ViewHolder holder = new ViewHolder(v);
        holder.mNameTextView.setOnClickListener(MyAdapter.this);
        holder.mNameTextView.setOnLongClickListener(MyAdapter.this);

        holder.mNameTextView.setTag(holder);

        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

        holder.mNameTextView.setText(mDataset.get(position));

    }

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


    @Override
    public void onClick(View view) { …
Run Code Online (Sandbox Code Playgroud)

java user-interface android selection android-recyclerview

127
推荐指数
6
解决办法
21万
查看次数