Double double;
int integer = (int) Math.round(double);
String string = Integer.toString(integer);
System.out.println(string);
findTxtField().setText(string);
私は上記のコードを例として使用しています。コードネームを使用してモバイルアプリケーションをコーディングしました。変数は初期化されます。TxtFieldで文字列と出力を文字列に変換して出力する - CodeNameOne
モバイルアプリケーションを実行し、同様のコード(上記)を実行したボタンを押すとエラーメッセージが表示されますが、残念ながらトラブルシューティング後にクラッシュの原因となったテキストフィールドに出力していました。
私のモバイルアプリケーションには5つのUIセクションがあります。ユーザー登録のセクションは、データを取得し、それを計算し、別のUIセクション「結果」のテキストフィールドを使用してデータを出力します。
この問題は何故ですか?
エラー:
Double double;
int integer = (int) Math.round(double); <--
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で開いた。ネットビーンズは時々痛みを伴うことがあります。これは明らかに単なる推測です。 – JSint