我制作了一个 Android 应用程序,当我尝试应用优惠券代码时,在模拟器中进行测试时就会崩溃。我很困惑,无法找出错误。这是我的 Android 应用程序日志:E/AndroidRuntime: FATAL EXCEPTION: main Process: com.dhruv.shop, PID: 1790 java.lang.NumberFormatException: Invalid int: "1,2,11" at java.lang.Integer.invalidInt(Integer.java:138) at java.lang.Integer.parse(Integer.java:410) at java.lang.Integer.parseInt(Integer.java:367) at java.lang.Integer.parseInt(Integer.java:334) at com.dhruv.shop.fragments.Checkout.applyCoupon(Checkout.java:1760) at com.dhruv.shop.fragments.Checkout$26.onResponse(Checkout.java:1573) at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)I/Process: Sending signal. PID: 1790 SIG: 9Application terminated.我发现我的错误代码指向 checkout.java 文件中的 applycoupon 方法,任何人都可以找出导致下面代码中的错误的原因,并尽快给我解决此错误的方法
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
首先使用将数据转换为字符串,然后String
解析数字 字符串数据,例如:-numeric
replaceAll
Integer.parseInt(stringData.replaceAll(",","")); // this should avoid the crash !
但要获取类别 ID 列表,您应该使用以下split
方式,
:-
String[] categoryIds = checkoutItemsList.get(i).getCustomersBasketProduct().getCategoryIDs().split(",");
然后将字符串数组转换为int数组
int[] intIds = Arrays.stream(categoryIds).mapToInt(Integer::parseInt).toArray();
添加回答
举报
0/150
提交
取消