您好,所有stackoverflow系列产品。
我开始为android
的一些项目学习development
操作系统,我可以做到。
我有一个示例project
,我正在获取一些data
。一切都很好,但我想尽可能做到这一点。
我正在使用sqlite
,并且要添加一些项。如果sqlite
项等于arraylist
onBindViewHolder
的项,我想删除。
我的ArrayAdapter:
public void onBindViewHolder(@NonNull final UserViewHolder holder, final int i) {
//Setting user profile pic with picasso
holder.username.setText(users.get(i).getUsername());
Picasso.with(holder.imageView.getContext())
.load(users.get(i).getProfile_pic_url())
.placeholder(R.drawable.ic_profile)
.error(R.drawable.ic_profile)
.into(holder.imageView);
//Remove item if button cliked
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final int position = holder.getAdapterPosition();
removeItem(position);
}
});
}
我尝试了此操作,但没有用:
public void onBindViewHolder(@NonNull final UserViewHolder holder, final int i) {
//Removing user which in white list
settings = holder.layout.getContext().getSharedPreferences("INSTAGRAM_UNFOLLOWERS", Context.MODE_PRIVATE);
settings.edit();
String current_user = settings.getString("username", "");
DBWhiteHelper dbWhiteHelper = new DBWhiteHelper(holder.layout.getContext());
if(users.get(i).getUsername().contains(dbWhiteHelper.WhiteList(current_user).get(i).getUsername())){
users.remove(i);
notifyDataSetChanged();
}
//Setting user profile pic with picasso
holder.username.setText(users.get(i).getUsername());
Picasso.with(holder.imageView.getContext())
.load(users.get(i).getProfile_pic_url())
.placeholder(R.drawable.ic_profile)
.error(R.drawable.ic_profile)
.into(holder.imageView);
//Remove item if button clicked
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final int position = holder.getAdapterPosition();
removeItem(position);
}
});
}
我还尝试了StackOverflow的许多方法,但没有任何效果。
我能做什么,还有更多想法吗?
答案 0 :(得分:0)
使用此方法
public void removeItem(int pos) {
mDataset.remove(pos);
notifyItemRemoved(pos);
notifyItemRangeChanged(pos, users.size());
}
我认为这会有所帮助。