我的应用不断崩溃:
int Price = (Integer.parseInt(listData.get(position).getPrice()))*(Integer.parseInt(listData.get(position).getQuantity()));
所有ClassAdapter方法崩溃 我尝试从'1'更改为字符串和其他数字,但没有发生任何事情,它不断崩溃
活动:
class CartViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView txt_cart_name,txt_cart_price;
public ImageView img_cart_count;
public ItemClickListener itemClickListenerl;
public void setTxt_cart_name(TextView txt_cart_name) {
this.txt_cart_name = txt_cart_name;
}
public CartViewHolder(View itemView) {
super(itemView);
txt_cart_name = itemView.findViewById(R.id.cart_item_name);
txt_cart_price = itemView.findViewById(R.id.cart_item_price);
img_cart_count = itemView.findViewById(R.id.cart_item_count);
}
@Override
public void onClick(View v) {
}
}
public class CartAdapter extends RecyclerView.Adapter<CartViewHolder> {
private List<Order> listData;
private Context context;
public CartAdapter(List<Order> listData, Context context) {
this.listData = listData;
this.context = context;
listData=new ArrayList<>();
}
@NonNull
@Override
public CartViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
View itemView= inflater.inflate(R.layout.cart_layout,parent,false);
return new CartViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull CartViewHolder holder, int position) {
TextDrawable drawable = TextDrawable.builder()
.buildRound(""+listData.get(position).getQuantity(), Color.RED);
holder.img_cart_count.setImageDrawable(drawable);
Locale locale =new Locale("en","US");
NumberFormat fmt =NumberFormat.getCurrencyInstance(locale);
int Price = (Integer.parseInt(listData.get(position).getPrice()))*(Integer.parseInt(listData.get(position).getQuantity())) ;//error line
holder.txt_cart_price.setText(fmt.format(Price));
holder.txt_cart_name.setText(listData.get(position).getProductName());
}
@Override
public int getItemCount() {
return listData.size();
}
}
logcat:
java.lang.NumberFormatException:对于输入字符串:“ 1” 在java.lang.Integer.parseInt(Integer.java:521) 在java.lang.Integer.parseInt(Integer.java:556) 在com.OverRout.app.ViewHolder.CartAdapter.onBindViewHolder(CartAdapter.java:72) 在com.OverRout.app.ViewHolder.CartAdapter.onBindViewHolder(CartAdapter.java:46)
答案 0 :(得分:3)
问题是这样的:
java.lang.NumberFormatException:对于输入字符串:
处为“ 1”
您可以看到“ 1”后面有空格吗?
您需要做的就是在获取字符串的方法的最后添加.trim()。
修剪将删除字符串前面和后面的所有空格,因此,如果修剪为1,修剪之后将为1。
答案 1 :(得分:0)
.trim()将为您提供帮助,字符串“ 1”有一个空格