安卓 java。lang.NumberFormatException:对于输入字符串:“null”
我不断地发现这个错误:( 错误出现在Donasi。阶级
这是Donasi的课堂:
int total = 0;
for (Transaksi transaksi:donasi)
total += (Integer.parseInt(transaksi.getMinimal()))*(Integer.parseInt(transaksi.getQuantity()));
Locale locale = new Locale("in", "ID");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
txtTotalDonasi.setText(fmt.format(total));
这是类DonationAdapter:
int minimal = (Integer.parseInt(listData.get(position).getMinimal()))*(Integer.parseInt(listData.get(position).getQuantity()));
holder.txt_minimal.setText(fmt.format(minimal));
holder.txt_nama_donasi.setText(listData.get(position).getNamaDonasi());
这是我的日志:
12-28 14:20:36.283 2579-2579/da.glowroz.donationapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: da.glowroz.donationapp, PID: 2579
java.lang.RuntimeException: Unable to start activity ComponentInfo{da.glowroz.donationapp/da.glowroz.donationapp.Donasi}: java.lang.NumberFormatException: For input string: "null"
at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at 安卓.app.ActivityThread.-wrap12(ActivityThread.java)
at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at 安卓.os.Handler.dispatchMessage(Handler.java:102)
at 安卓.os.Looper.loop(Looper.java:154)
at 安卓.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.NumberFormatException: For input string: "null"
at java.lang.Integer.parseInt(Integer.java:521)
at java.lang.Integer.parseInt(Integer.java:556)
at da.glowroz.donationapp.Donasi.loadListDonasi(Donasi.java:134)
at da.glowroz.donationapp.Donasi.onCreate(Donasi.java:72)
at 安卓.app.Activity.performCreate(Activity.java:6662)
at 安卓.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at 安卓.app.ActivityThread.-wrap12(ActivityThread.java)
at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at 安卓.os.Handler.dispatchMessage(Handler.java:102)
at 安卓.os.Looper.loop(Looper.java:154)
at 安卓.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:755)
如何解决这个问题
# 1 楼答案
你正在变得越来越坚强。这不是
int
。添加检查^{} 你的应用程序。在
total
旁边添加断点添加
try-catch
块# 2 楼答案
在解析之前,请尝试检查getMinimal()和getQuantity()上的null
或者
将解析代码保留在try块中,并捕获NumberFormatException。当getMinimal()或getQuantity()不为null且不是数字字符串时,这也会有所帮助
# 3 楼答案
transaksi.getMinimal()
或transaksi.getQuantity()
为空所以在尝试
parseInt
之前检查一下也许像
# 4 楼答案
transaksi.getMinimal()
和transaksi.getQuantity()
应该是有效的数字字符串,可以作为整数进行分析