NumberFormatException Android Studio崩溃

时间:2019-01-09 14:42:12

标签: java android database android-studio

我的应用不断崩溃:

   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)

2 个答案:

答案 0 :(得分:3)

问题是这样的:

  

java.lang.NumberFormatException:对于输入字符串:

处为“ 1”

您可以看到“ 1”后面有空格吗?

您需要做的就是在获取字符串的方法的最后添加.trim()。

修剪将删除字符串前面和后面的所有空格,因此,如果修剪为1,修剪之后将为1。

答案 1 :(得分:0)

.trim()将为您提供帮助,字符串“ 1”有一个空格