public class RecyclerActivity extends AppCompatActivity { private List<String> strings = new ArrayList<>(); private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); handler.sendEmptyMessageDelayed(0, 1000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycler); for (int i = 0; i < 50; i++) { strings.add("收到了开发埃里克解放螺丝扣决定了放假啊两款手机的"); strings.add("螺丝扣决定了放假啊两款手机的"); strings.add("否就是啦快递发链接啊收到了开发埃里克解放螺丝扣决定了放假啊两款手机的"); strings.add("解放螺丝扣决定了放假啊两款手机的"); strings.add("放螺丝扣决定了放假的"); } RecyclerView rec = findViewById(R.id.rec); // LinearLayoutManager manager = new LinearLayoutManager(this); // manager.setOrientation(manager.VERTICAL); // GridLayoutManager manager = new GridLayoutManager(this, 2); StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL); rec.setLayoutManager(manager); // rec.setItemAnimator(new DefaultItemAnimator()); myAdapter = new MyAdapter(); myAdapter.setOnItemClickListener(new OnClickItemListener() { @Override public void onItem(int position) { Toast.makeText(RecyclerActivity.this, strings.get(position), Toast.LENGTH_SHORT).show(); myAdapter.removeData(position); // myAdapter.notifyDataSetChanged(); } }); rec.setAdapter(myAdapter); } private MyAdapter myAdapter; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = View.inflate(RecyclerActivity.this, R.layout.layout_item, null); MyViewHolder holder = new MyViewHolder(view); holder.msg = view.findViewById(R.id.text); return holder; } @Override public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) { myViewHolder.msg.setText(strings.get(i)); myViewHolder.msg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.onItem(i); } }); } @Override public int getItemCount() { return strings.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { public MyViewHolder(@NonNull View itemView) { super(itemView); } TextView msg; } private OnClickItemListener listener; public void setOnItemClickListener(OnClickItemListener listener) { this.listener = listener; } public void removeData(int position) { strings.remove(position); notifyItemChanged(position); handler.sendEmptyMessageDelayed(0, 1000); } } public interface OnClickItemListener { void onItem(int position); } }
RecyclerView适配器及展示
最新推荐文章于 2021-06-24 20:49:05 发布