Double double;
int integer = (int) Math.round(double);
String string = Integer.toString(integer);
System.out.println(string);
findTxtField().setText(string);
我使用上述代码作为示例 - 我已使用CodeNameOne编码我的移动应用程序。变量被初始化。隐藏双整数字符串和输出在TxtField - CodeNameOne
运行移动应用程序并点击执行类似代码的按钮(上图)时,我收到一条错误消息,不幸的是,在排除故障后,我发现它是输出到导致崩溃的文本字段。
我的移动应用程序有5个UI部分。用户“注册”部分将获取数据,计算出数据,然后使用另一个UI部分“结果”中的文本字段输出数据。
任何想法,为什么我有这个问题?
错误:
java.lang.NullPointerException
at userclasses.StateMachine.onMain_BtnInfoAction(StateMachine.java:171)
at generated.StateMachineBase.handleComponentAction(StateMachineBase.java:2251)
at com.codename1.ui.util.UIBuilder$FormListener.actionPerformed(UIBuilder.java:2831)
at com.codename1.ui.util.EventDispatcher.fireActionEvent(EventDispatcher.java:345)
at com.codename1.ui.Button.fireActionEvent(Button.java:397)
at com.codename1.ui.Button.released(Button.java:428)
at com.codename1.ui.Button.pointerReleased(Button.java:516)
at com.codename1.ui.Form.pointerReleased(Form.java:2560)
at com.codename1.ui.Form.pointerReleased(Form.java:2496)
at com.codename1.ui.Component.pointerReleased(Component.java:3108)
at com.codename1.ui.Display.handleEvent(Display.java:2017)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1065)
at com.codename1.ui.Display.mainEDTLoop(Display.java:994)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
您没有'double'变量的值,它的类型为'Double',它是一个包装类,而不是原始类。所以它被初始化为null。 – SacJn
初始化double并使用SystemOut测试值。 Int是Double的正确四舍五入值。我只是无法在文本框中输出。我测试了字符串,它也是正确的值。 – JSint
已解决问题。我重建了应用程序,现在它按预期运行。似乎必须存在兼容性问题。我使用8.1在笔记本电脑上构建它,并在8.0中打开它。 Netbeans有时可能会很痛苦。这显然只是一个猜测。 – JSint