2016-04-14 12 views
0

これは私の最初のコーディングです。私は私の友人のために立方ヤード計算機を作ろうとしています。私は計算のための数式を持っている、私はいくつかのYouTubeのビデオで見たコーディングを試して、今私は立ち往生だ。私は文字列のフォーマットとNULLポインタの例外と小数点についての何かについてのエラーを取得しています。 は、ここで私は、これまでに得たものです:一見私はアンドロイドのキュービックヤード電卓アプリを作ろうとしており、エラーが発生しています

public void onButtonClick(View v) { 
    EditText e1 = (EditText)findViewById(R.id.Length); 
    EditText e2 = (EditText)findViewById(R.id.width); 
    EditText e3 = (EditText)findViewById(R.id.depth); 
    TextView t1 = (TextView)findViewById(R.id.textView); 
    int num1 = Integer.parseInt(e1.getText().toString()); 
    int num2 = Integer.parseInt(e2.getText().toString()); 
    int num3 = Integer.parseInt(e3.getText().toString()); 
    int sum = num1 * num2 * num3/12/27; 
    t1.setText(Integer.toString(sum)); 
} 
+1

あなたのlogcatを投稿することができますか? – Yashasvi

+0

私はそれが何であるか、それをどうやって得るのかわからない、本当にここのnoob。申し訳ありません –

答えて

0

、あなたが倍増する変換せずに変数sumを計算しているようです。 12と27によるこの除算は、整数除算をもたらし、したがって情報損失をもたらす。正しい方法は次のようになります。

double sum = (double) num1 * num2 * num3/12/27; 

そして、あなたが使用する必要があり、文字列に二重に変換する:

t1.setText(String.valueOf(sum)); 
+0

私はまだjava.lang.NullPointerExceptionエラーを取得しています。ボタンがタップされているときにのみコードをアクティブにする方法はありますか?また、3つのフィールドがいっぱいになったときだけボタンを使用できるようにするにはどうすればよいですか? –

+0

私は以下のようにいくつかの変更を加えました:int num1 = 0; if(e1!= null)num1 = Integer.parseInt(e1.getText()。toString()); –

+0

3つのフィールドがいっぱいになったときにのみアクティブにするには、いくつかの "if"ステートメントを入れ、ユーザーがボタンを押したときに要件が満たされない場合、トーストが表示されることがあります。例えば。 if(textField empty){Toast( "テキストフィールドは空であってはいけません"}。 –

関連する問題