<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); } }