<android>RecyclerView列表局部刷新

<android>RecyclerView列表局部刷新

MainActivity中:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView = (RecyclerView) findViewById(R.id.rv);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    initData();
    rvAdapter = new RvAdapter(context);
    recyclerView.setAdapter(rvAdapter);
    refresh();
}

private void refresh() {
    new Thread(new Runnable() {
        @Override
        public void run() {
            while (true) {
                try {
                    Thread.sleep(3000);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            //context.set(8,"我变了");
                            context.set(10, "加上我");
                            rvAdapter.setData(context);
                            rvAdapter.notifyDataSetChanged();
                        }
                    });

                    break;
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }).start();
}


/**
 * 初始化数据
 */
private void initData() {

    context = new ArrayList<>();
    context.add("小花猫1");
    context.add("小花猫2");
    context.add("小花猫3");
    context.add("小花猫4");
    context.add("小花猫5");
    context.add("小花猫6");
    context.add("小花猫7");
    context.add("小花猫8");
    context.add("小花猫9");
    context.add("小花猫10");
    context.add("小花猫11");
}
 
 

adapter中:

public class RvAdapter extends RecyclerView.Adapter<RvAdapter.Viewhoulder> {

    ArrayList<String> data;
    public RvAdapter(ArrayList<String> data) {
        this.data = data;
    }

    @Override
    public Viewhoulder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
        Viewhoulder viewhoulder = new Viewhoulder(view);
        return viewhoulder;
    }

    @Override
    public void onBindViewHolder(Viewhoulder holder, int position) {
        holder.img.setImageResource(R.mipmap.back);
        holder.tv.setText(data.get(position));
    }


    public void setData(ArrayList<String> data) {
        this.data = data;
    }

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

    public static class Viewhoulder extends RecyclerView.ViewHolder {
        ImageView img;
        TextView tv;
        public Viewhoulder(View itemView) {
            super(itemView);
            img = (ImageView) itemView.findViewById(R.id.img);
            tv = (TextView) itemView.findViewById(R.id.tv);

        }
    }



猜你喜欢

转载自blog.csdn.net/csdn_lg_one/article/details/78185283