Invalid characters java.lang.NumberFormatException:无效的int:";130菲律宾比索“;
我不知道如何解决这个问题 我在代码中找不到我的错误 请帮我解决:(谢谢 我被重定向到 total+=(Integer.parseInt(order.getPrice())*(Integer.parseInt(order.getQuantity()); 这是我的适配器代码Invalid characters java.lang.NumberFormatException:无效的int:";130菲律宾比索“;,invalid-characters,Invalid Characters,我不知道如何解决这个问题 我在代码中找不到我的错误 请帮我解决:(谢谢 我被重定向到 total+=(Integer.parseInt(order.getPrice())*(Integer.parseInt(order.getQuantity()); 这是我的适配器代码 public class CartAdapter extends RecyclerView.Adapter<CartViewHolder>{ private List<Order> listDat
public class CartAdapter extends RecyclerView.Adapter<CartViewHolder>{
private List<Order> listData = new ArrayList<>();
private Context context;
public CartAdapter(List<Order> cart, Cart cart1)
{
}
@Override
public CartViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
View itemView = inflater.inflate(R.layout.cartlayout,parent,false);
return new CartViewHolder(itemView);
}
@Override
public void onBindViewHolder(CartViewHolder holder, int position) {
TextDrawable drawable = TextDrawable.builder()
.buildRound(""+listData.get(position).getQuantity(), Color.RED);
holder.img_cart_count.setImageDrawable(drawable);
int price = (Integer.parseInt(listData.get(position).getPrice()))*(Integer.parseInt(listData.get(position).getQuantity()));
holder.txt_price.setText(price);
holder.txt_cart_name.setText(listData.get(position).getProductName());
}
@Override
public int getItemCount() {
return listData.size();
}
}
公共类CartAdapter扩展了RecyclerView.Adapter{
private List listData=new ArrayList();
私人语境;
公共购物车适配器(列表购物车、购物车1)
{
}
@凌驾
公共CartViewHolder onCreateViewHolder(视图组父级,int-viewType){
LayoutFlater充气机=LayoutFlater.from(上下文);
视图项视图=充气机充气(R.layout.cartlayout,父项,false);
返回新的CartViewHolder(itemView);
}
@凌驾
公共无效onBindViewHolder(CartViewHolder,内部位置){
TextDrawable-drawable=TextDrawable.builder()
.buildRound(“+listData.get(position.getQuantity(),Color.RED”);
holder.img_cart_count.setImageDrawable(可提取);
int price=(Integer.parseInt(listData.get(position.getPrice())*(Integer.parseInt(listData.get(position.getQuantity()));
holder.txt_price.setText(价格);
holder.txt\u cart\u name.setText(listData.get(position.getProductName());
}
@凌驾
public int getItemCount(){
返回listData.size();
}
}
来自JavaDoc:Integer.parseInt(字符串s)方法
抛出一个NumberFormatException
如果字符串不包含可解析整数
这意味着,方法order.getPrice()
或order.getQuantity()
返回的“130 PHP”
不是有效的整数
您真正的问题可能是:为什么该方法返回字符串而不是整数
,因为您现在必须解析字符串
。非常容易出错,而且这种做法很糟糕
如果您的GUI元素(或其他任何元素)与Integer
不匹配,请至少将“PHP”从输入字段中删除,这样您就可以解析字符串
,而无需使用一些字符串帮助器方法对其进行操作。类CartViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener
class CartViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
, View.OnCreateContextMenuListener {
public TextView txt_cart_name,txt_price;
public ImageView img_cart_count;
private ItemClickListener itemClickListener;
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 = (TextView)itemView.findViewById(R.id.cart_item_name);
txt_price = (TextView)itemView.findViewById(R.id.cart_item_Price);
img_cart_count = (ImageView)itemView.findViewById(R.id.cart_item_count);
itemView.setOnCreateContextMenuListener(this);
}
@Override
public void onClick(View view) {
}
@Override
public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {
contextMenu.setHeaderTitle("Selecione uma Ação");
contextMenu.add(0,0,getAdapterPosition(),Common.DELETE);
}
}
public class CartAdapter extends RecyclerView.Adapter<CartViewHolder> {
private List<Order> listData = new ArrayList<>();
private Context context;
public CartAdapter(List<Order> listData, Context context) {
this.listData = listData;
this.context = context;
}
@Override
public CartViewHolder onCreateViewHolder(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(CartViewHolder holder, int position) {
TextDrawable drawable = TextDrawable.builder()
.buildRound(""+listData.get(position).getQuantity(), Color.BLUE);
holder.img_cart_count.setImageDrawable(drawable);
Locale locale = new Locale("pt","BR");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
int price = (Integer.parseInt(listData.get(position).getPrice()))*(Integer.parseInt(listData.get(position).getQuantity()));
holder.txt_price.setText(fmt.format(price));
holder.txt_cart_name.setText(listData.get(position).getProductName());
}
@Override
public int getItemCount() {
return listData.size();
}
}
,View.OnCreateContextMenuListener{
公共文本查看txt\u购物车名称、txt\u价格;
公共图像查看img\u cart\u计数;
私有项ClickListener项ClickListener;
public void setTxt\u cart\u name(TextView txt\u cart\u name){
this.txt\u cart\u name=txt\u cart\u name;
}
公共CartViewHolder(查看项目视图){
超级(项目视图);
txt\u cart\u name=(TextView)itemView.findViewById(R.id.cart\u item\u name);
txt\u price=(TextView)itemView.findViewById(R.id.cart\u item\u price);
img\u cart\u count=(ImageView)itemView.findViewById(R.id.cart\u item\u count);
setOnCreateContextMenuListener(这个);
}
@凌驾
公共void onClick(视图){
}
@凌驾
public void onCreateContextMenu(ContextMenu ContextMenu,View视图,ContextMenu.ContextMenuInfo ContextMenuInfo){
contextMenu.setHeaderTitle(“Selecione umação”);
添加(0,0,getAdapterPosition(),Common.DELETE);
}
}
公共类CartAdapter扩展了RecyclerView.Adapter{
private List listData=new ArrayList();
私人语境;
公共CartAdapter(列表列表数据、上下文){
this.listData=listData;
this.context=上下文;
}
@凌驾
公共CartViewHolder onCreateViewHolder(视图组父级,int-viewType){
LayoutFlater充气机=LayoutFlater.from(上下文);
视图项视图=充气机。充气(R.layout.cart\u布局,父项,false);
返回新的CartViewHolder(itemView);
}
@凌驾
公共无效onBindViewHolder(CartViewHolder,内部位置){
TextDrawable-drawable=TextDrawable.builder()
.buildRound(“+listData.get(position.getQuantity(),Color.BLUE));
holder.img_cart_count.setImageDrawable(可提取);
语言环境=新语言环境(“pt”、“BR”);
NumberFormat fmt=NumberFormat.getCurrencyInstance(语言环境);
int price=(Integer.parseInt(listData.get(position.getPrice())*(Integer.parseInt(listData.get(position.getQuantity()));
holder.txt_price.setText(fmt.format(price));
holder.txt\u cart\u name.setText(listData.get(position.getProductName());
}
@凌驾
public int getItemCount(){
返回listData.size();
}
}
我从数据库中删除了商品价格中的PHP,但仍然得到相同的错误:(验证您的方法order.getPrice()
返回“130”
,而不是类似“130”
的东西是可解析的,“130”
不是。我该怎么做?谢谢你的应用程序或System.out.println()
你的变量。
class CartViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
, View.OnCreateContextMenuListener {
public TextView txt_cart_name,txt_price;
public ImageView img_cart_count;
private ItemClickListener itemClickListener;
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 = (TextView)itemView.findViewById(R.id.cart_item_name);
txt_price = (TextView)itemView.findViewById(R.id.cart_item_Price);
img_cart_count = (ImageView)itemView.findViewById(R.id.cart_item_count);
itemView.setOnCreateContextMenuListener(this);
}
@Override
public void onClick(View view) {
}
@Override
public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {
contextMenu.setHeaderTitle("Selecione uma Ação");
contextMenu.add(0,0,getAdapterPosition(),Common.DELETE);
}
}
public class CartAdapter extends RecyclerView.Adapter<CartViewHolder> {
private List<Order> listData = new ArrayList<>();
private Context context;
public CartAdapter(List<Order> listData, Context context) {
this.listData = listData;
this.context = context;
}
@Override
public CartViewHolder onCreateViewHolder(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(CartViewHolder holder, int position) {
TextDrawable drawable = TextDrawable.builder()
.buildRound(""+listData.get(position).getQuantity(), Color.BLUE);
holder.img_cart_count.setImageDrawable(drawable);
Locale locale = new Locale("pt","BR");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
int price = (Integer.parseInt(listData.get(position).getPrice()))*(Integer.parseInt(listData.get(position).getQuantity()));
holder.txt_price.setText(fmt.format(price));
holder.txt_cart_name.setText(listData.get(position).getProductName());
}
@Override
public int getItemCount() {
return listData.size();
}
}