我有recycleview,我在其中實現了搜索功能。并且每個項目都添加了 onClick,它通過以下代碼從列表中刪除項目。 holder.del_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int newPosition = holder.getAdapterPosition(); contactListFiltered.remove(newPosition); notifyItemRemoved(newPosition); notifyItemRangeChanged(newPosition, contactListFiltered.size());});它適用于普通列表,但當搜索任何項目時,在過濾結果上,onclick 偵聽器可能會由于視圖重疊而隨機刪除。所以我用下面的代碼將 onclick 偵聽器傳遞給活動 mSolved.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // send selected contact in callback listener.onSolved(contactListFiltered.get(getAdapterPosition())); } }); public interface FRoomAdapterListener { void onSolved(Districtpost contact); }在我正在使用的活動中 public void onDelete(Districtpost contact) { int newPosition = holder.getAdapterPosition(); contactListFiltered.remove(newPosition); notifyItemRemoved(newPosition); notifyItemRangeChanged(newPosition, contactListFiltered.size()); });這肯定會引發錯誤。我該如何解決這個問題。提前致謝。
2 回答

哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
嘗試這個
public void onDelete(Districtpost contact) {
if(contactListFiltered != null && contactListFiltered.size > 0){
contactListFiltered.remove(contact);
notifydatasetchanged();
}});

慕的地8271018
TA貢獻1796條經驗 獲得超4個贊
嘗試這個:
yourList.remove(position); //Remove item from list
notifyItemRemoved(position); //notify changes made to the adapter.
添加回答
舉報
0/150
提交
取消