Android RecyclerView 專案新增與刪除
問題
此框包括一個包含一個框圖和一個十字按鈕(ImageView)。 RecyclerView 外部的按鈕用於切換十字按鈕的可見性。目的是當點擊對應的十字按鈕時從RecyclerView中刪除一個項目。解決方案
在適配器的ViewHolder類別中:,呼叫notifyItemRemoved() 和notifyItemRangeChanged()。
<code class="java">public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private ArrayList<String> mDataset; public MyAdapter(ArrayList<String> myDataset) { mDataset = myDataset; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) { // ... holder.mNameTextView.setOnClickListener(this); holder.crossButton.setOnClickListener(this); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { // ... } @Override public void onClick(View view) { if (view.getId() == holder.crossButton.getId()) { removeAt(holder.getAdapterPosition()); } else if (view.getId() == holder.mNameTextView.getId()) { // ... } } public void removeAt(int position) { mDataset.remove(position); notifyItemRemoved(position); notifyItemRangeChanged(position, mDataset.size()); } public static class ViewHolder extends RecyclerView.ViewHolder { TextView mNameTextView; ImageView crossButton; public ViewHolder(View v) { super(v); mNameTextView = (TextView) v.findViewById(R.id.nameTextView); crossButton = (ImageView) v.findViewById(R.id.crossButton); } } }</code>範例適配器程式碼
以上是如何使用十字按鈕從 Android RecyclerView 中刪除項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!