我在 recyclerView 中制作了一张卡片列表。当卡持有一段时间后,其在数据库中的相应条目将被删除,因此之后,必须删除该卡。这可以通过调用设置新的更新适配器来完成。但我无法在 onBindViewHolder 中使用 setAdapter 函数,因为我不知道如何获取相同的 recyclerView。请帮忙。
CODE:
public class RecyclerViewAdapterMain extends RecyclerView.Adapter<RecyclerViewAdapterMain.ViewHolder> {
String[] strings;
DBManager dbManager;
public RecyclerViewAdapterMain(String[] arrayList) {
this.strings = arrayList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_list,parent,false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.textView.setText(strings[position]);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(holder.itemView.getContext(),SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("list",strings[position]);
intent.putExtras(bundle);
holder.itemView.getContext().startActivity(intent);
//overridePendingTransition(R.anim.abc_fade_in,R.anim.abc_fade_out);
}
});
holder.cardView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(final View view) {
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
dbManager = new DBManager(holder.itemView.getContext(),null,null,1);
dbManager.deleteList(strings[position]);
String[] strings = dbManager.showLists();
RecyclerViewAdapterMain recyclerViewAdapter = new RecyclerViewAdapterMain(strings);
//I WANT TO SET UPDATED ADAPTER HERE
break;
case DialogInterface.BUTTON_NEGATIVE:
//No button clicked
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(holder.itemView.getContext());
builder.setMessage("Are you sure that you want to delete \""+strings[position]+"\"?").setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
return true;
}
});
}
@Override
public int getItemCount() {
return strings.length;
}
public class ViewHolder extends RecyclerView.ViewHolder{
CardView cardView;
TextView textView;
public ViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.textView);
cardView = (CardView) itemView.findViewById(R.id.cardView);
}
}
}
在onBindViewHolder中的Adapter类中写入
photolist.remove(i);
notifyItemRemoved(i);
notifyItemRangeChanged(i, photolist.size());
notifyDataSetChanged();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)