Java 从RecycleView中删除项目
我想从购物车中删除一个项目。在这种情况下,购物卡列表是Java 从RecycleView中删除项目,java,android,android-studio,Java,Android,Android Studio,我想从购物车中删除一个项目。在这种情况下,购物卡列表是RecycleView。当我仍在购物车活动中时,该项目已成功删除,但当我通过BottomNavigationView更改活动并返回购物车活动时,该项目再次出现。有人知道这个问题吗?谢谢你的回答 顺便说一句,很抱歉英语不好 这是我的密码剪 holder.trashIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View
RecycleView
。当我仍在购物车活动中时,该项目已成功删除,但当我通过BottomNavigationView
更改活动并返回购物车活动时,该项目再次出现。有人知道这个问题吗?谢谢你的回答
顺便说一句,很抱歉英语不好
这是我的密码剪
holder.trashIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mReceiptList.remove(holder.getAdapterPosition());
notifyItemRemoved(holder.getAdapterPosition());
notifyItemRangeChanged(holder.getAdapterPosition(), mReceiptList.size());
holder.itemView.setVisibility(View.GONE);
((DaftarCartFragment) fragment).calculateTotalMin();
}
});
更新
下面是完整的代码,包括mReceiptList的用法
package tech.agronum.kitchenwaremobile.adapters;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.gson.Gson;
import org.w3c.dom.Text;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.List;
import tech.agronum.kitchenwaremobile.R;
import tech.agronum.kitchenwaremobile.fragments.cart.DaftarCartFragment;
import tech.agronum.kitchenwaremobile.models.Mobile.Product.Product;
import tech.agronum.kitchenwaremobile.models.Mobile.Product.Receipt;
public class RecycleViewCartAdapter extends RecyclerView.Adapter<RecycleViewCartAdapter.RecyclerVH> {
public static List<Receipt> mReceiptList = null;
Product inventory;
String[] spacecrafts;
Context context;
FragmentManager fragmentManager;
private int add = 0;
private int subtract = 0;
Fragment fragment;
SharedPreferences preferences;
public RecycleViewCartAdapter(List<Receipt> receipt, FragmentManager _fragmentManager, Fragment _fragment) {
mReceiptList = receipt;
fragmentManager = _fragmentManager;
fragment = _fragment;
}
// Fungsi Hitung
public Integer getQuantityPrice(int i) {
return mReceiptList.get(i).getQuantity() * mReceiptList.get(i).getPrice();
}
@NonNull
@Override
public RecyclerVH onCreateViewHolder(@NonNull ViewGroup parent, int i) {
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.component_card_cart,parent,false);
return new RecyclerVH(v);
}
@Override
public void onBindViewHolder(@NonNull final RecyclerVH holder, int i) {
final Receipt receipt = mReceiptList.get(i);
final String id = receipt.getId().toString();
String produkName = receipt.getName();
String produkCode = receipt.getCode();
Integer price = receipt.getPrice();
Integer qty = receipt.getQuantity();
String condition = receipt.getCondition();
NumberFormat formatter = new DecimalFormat("#,###");
if(receipt.getId() == 0){
holder.produkName.setText("Data sudah terhapus atau tidak ada");
holder.produkCode.setText("-");
holder.price.setText("-");
} else {
try {
holder.produkName.setText(produkName);
holder.produkCode.setText(produkCode);
holder.itemCondition.setText(condition);
holder.itemQuantity.setText(qty.toString());
holder.price.setText(formatter.format(price) + "");
} catch (NullPointerException ne) {
ne.printStackTrace();
}
}
final int now = Integer.parseInt(holder.itemQuantity.getText().toString());
holder.buttonPlus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// int res;
// add++;
// res = now+ add;
// holder.itemQuantity.setText(res + "");
Integer current = Integer.parseInt(holder.itemQuantity.getText().toString());
current = current + 1;
holder.itemQuantity.setText(current.toString());
receipt.setQuantity(current);
((DaftarCartFragment) fragment).calculateTotal();
}
});
holder.buttonMinus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// int res;
// subtract++;
// res = now - subtract;
// holder.itemQuantity.setText(res + "");
Integer current = Integer.parseInt(holder.itemQuantity.getText().toString());
if(current>0) {
current = current - 1;
}
holder.itemQuantity.setText(current.toString());
receipt.setQuantity(current);
((DaftarCartFragment) fragment).calculateTotalMin();
}
});
holder.trashIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.itemView.setVisibility(View.GONE);
((DaftarCartFragment) fragment).calculateTotalMin();
mReceiptList.remove(holder.getAdapterPosition());
notifyItemRemoved(holder.getAdapterPosition());
notifyItemRangeChanged(holder.getAdapterPosition(), mReceiptList.size());
}
});
}
@Override
public int getItemCount() {
int size = 0;
try {
size = mReceiptList.size();
} catch (NullPointerException ne) {
ne.printStackTrace();
size = 0;
} catch (Exception e) {
e.printStackTrace();
size = 0;
}
return size;
}
/*
VIEWHOLDER CLASS
*/
public class RecyclerVH extends RecyclerView.ViewHolder
{
Integer id;
TextView produkName;
TextView produkCode;
TextView category;
TextView warehouseCategory;
TextView price;
EditText itemQuantity;
Button detailButton;
TextView buttonPlus;
TextView buttonMinus;
TextView itemCondition;
ImageView trashIcon;
// ImageView imageView;
public RecyclerVH(View itemView) {
super(itemView);
produkName = (TextView) itemView.findViewById(R.id.item_name);
produkCode = (TextView) itemView.findViewById(R.id.product_code);
category = (TextView) itemView.findViewById(R.id.product_category);
warehouseCategory = (TextView) itemView.findViewById(R.id.product_warehouseCategory);
price = (TextView) itemView.findViewById(R.id.product_price);
itemQuantity = (EditText) itemView.findViewById(R.id.item_quantity);
buttonPlus = (TextView) itemView.findViewById(R.id.item_quantity_button_plus);
buttonMinus = (TextView) itemView.findViewById(R.id.item_quantity_button_minus);
detailButton = (Button) itemView.findViewById(R.id.product_detail_button);
itemCondition = (TextView) itemView.findViewById(R.id.item_condition);
trashIcon = (ImageView) itemView.findViewById(R.id.trash_icon);
//imageView = (ImageView)itemView.findViewById(R.id.productImage);
}
}
}
package tech.agronum.kitchenwaremobile.adapters;
导入android.content.Context;
导入android.content.SharedReferences;
导入android.os.Bundle;
导入android.support.annotation.NonNull;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ImageView;
导入android.widget.TextView;
导入com.google.gson.gson;
导入org.w3c.dom.Text;
导入java.text.DecimalFormat;
导入java.text.NumberFormat;
导入java.util.List;
进口技术.agronum.kitchenwaremobile.R;
导入tech.agronum.kitchenwaremobile.fragments.cart.daftarcartframents;
进口技术.agronum.kitchenwaremobile.models.Mobile.Product.Product;
导入tech.agronum.kitchenwaremobile.models.Mobile.Product.Receipt;
公共类RecycleViewCartAdapter扩展了RecycleView.Adapter{
公共静态列表mReceiptList=null;
产品库存;
弦[]航天器;
语境;
碎片管理器碎片管理器;
私有int add=0;
私有整数减去=0;
片段;
共享参考偏好;
公共RecycleViewCartAdapter(列表收据、碎片管理器\u碎片管理器、碎片\u碎片){
mReceiptList=收据;
fragmentManager=\u fragmentManager;
片段=_片段;
}
//冯希同
公共整数getQuantityPrice(int i){
返回mReceiptList.get(i).getQuantity()*mReceiptList.get(i).getPrice();
}
@非空
@凌驾
public RecyclerVH onCreateViewHolder(@NonNull ViewGroup parent,int i){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.component\u card\u cart,parent,false);
返回新的回收器(v);
}
@凌驾
BindViewHolder上的公共无效(@NonNull final RecyclerVH holder,int i){
最终接收=mReceiptList.get(i);
最终字符串id=receipt.getId().toString();
字符串produkName=receipt.getName();
字符串produkCode=receipt.getCode();
整数价格=收据。getPrice();
整数数量=收据。getQuantity();
字符串条件=receipt.getCondition();
NumberFormat formatter=新的十进制格式(“#,#,###”);
if(receipt.getId()==0){
holder.produkName.setText(“数据来源”);
holder.produkCode.setText(“-”);
holder.price.setText(“-”);
}否则{
试一试{
holder.produkName.setText(produkName);
holder.produkCode.setText(produkCode);
holder.itemCondition.setText(条件);
holder.itemQuantity.setText(qty.toString());
holder.price.setText(formatter.format(price)+“”);
}捕获(NullPointerException ne){
ne.printStackTrace();
}
}
final int now=Integer.parseInt(holder.itemQuantity.getText().toString());
holder.buttonPlus.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//国际关系;
//添加++;
//res=现在+添加;
//holder.itemQuantity.setText(res+“”);
当前整数=Integer.parseInt(holder.itemQuantity.getText().toString());
电流=电流+1;
holder.itemQuantity.setText(current.toString());
收据.设置数量(当前);
((DaftarCartFragment)片段);
}
});
holder.buttonMinus.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//国际关系;
//减法++;
//res=现在-减去;
//holder.itemQuantity.setText(res+“”);
当前整数=Integer.parseInt(holder.itemQuantity.getText().toString());
如果(当前>0){
电流=电流-1;
}
holder.itemQuantity.setText(current.toString());
收据.设置数量(当前);
((DaftarCartFragment)片段);
}
});
holder.trashIcon.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
holder.itemView.setVisibility(View.GONE);
((DaftarCartFragment)片段);
mReceiptList.remove(holder.getAdapterPosition());
notifyItemRemoved(holder.getAdapterPosition());
notifyItemRangeChanged(holder.getAdapterPosition(),mReceiptList.size());
}
});
}
@凌驾
public int getItemCount(){
int size=0;
试一试{
size=mReceiptList.size();
}捕获(NullPointerException ne){
ne.printStackTrace();
尺寸=0;
}捕获(例外e){
e、 printStackTrace();
尺寸=0;
}
返回大小;
}
/*
视图持有者类
*/
公共类RecyclerVH扩展了RecyclerView.ViewHolder
{
整数id;