-1

私は単純なAndroidアプリを作成しました.1つのアクティビティのEditText値からいくつかの計算が行われ、いくつかの乗算、合計、およびその他の数学的手順があり、別のアクティビティedittexs.soで結果を2倍に表示しています。文字列値をキャストする必要があるかどうか教えてください計算を行うために「2倍」にする方法と、どうすればそれを行うことができますか?

Activity1.java

Intent ic = new Intent(Calculator_1Activity.this,Calculator2a.class);
        ic.putExtra("e1", et1.getText().toString());
        ic.putExtra("e2", et2.getText().toString());
        ic.putExtra("e3", et3.getText().toString());
        ic.putExtra("e4", et4.getText().toString());
        ic.putExtra("e5", et5.getText().toString());
        ic.putExtra("e6", et6.getText().toString());
        ic.putExtra("e7", et7.getText().toString());
        ic.putExtra("e8", et8.getText().toString());

        startActivity(ic);

そして、Activity2aでその値をフェッチしますが、計算を行うことができません....助けてください..:(

Activity2a.java

  Intent receiveIntent = this.getIntent();
        String etz1 = receiveIntent.getStringExtra("e1");
        String etz2 = receiveIntent.getStringExtra("e2");
        String etz3 = receiveIntent.getStringExtra("e3");
        String etz4 = receiveIntent.getStringExtra("e4");
        String etz5 = receiveIntent.getStringExtra("e5");
        String etz6 = receiveIntent.getStringExtra("e6");
        String etz7 = receiveIntent.getStringExtra("e7");
        String etz8 = receiveIntent.getStringExtra("e8");

        et1.setText(etz1);
        et2.setText(etz2);
        et3.setText(etz3);
        et4.setText(etz4);
        et5.setText(etz5);
        et6.setText(etz6);
        et7.setText(etz7);
        et8.setText(etz8);

私を助けてください

4

3 に答える 3

1

String を Double に変換して計算したい場合は、次のように実行できます。

String myStringValue = "15.432";
double value = Double.parseDouble(myStringValue);

あなたの場合、これを行うことができます:

intent.putExtra("myKey", Double.parseDouble(et1.getText().toString()));

最後に、これを使用してインテントから直接 double を取得できます。

double myValue = 1.00;
try {
     myValue = getIntent().getDoubleExtra("myKey", 1.00);
catch(NumberFormatException e){
      e.printStackTrace();
}

必要に応じて、文字列として取得して double に変換する必要はありません。

編集: EditText から double として値を取得したいことを理解しているように、いくつかの計算を行い、それら/それを Activity2 に送信し、結果を別の に表示しEditTextます。それが正しいシナリオである場合、最初にユーザーに数値のみを入力するように強制できます。数値を使用して計算を行う必要があるためです。上記のように、文字列を double に変換できます。その後、 を使用して値を送信putExtra();し、2 番目のアクティビティでそれらを取得し、2 番目の でテキストとして設定しますEditText

于 2013-02-02T09:11:29.260 に答える
1

これは、String を double にキャストするために必要です。

String myStringValue = "30.00";
double value = Double.parseDouble(myStringValue);
于 2013-02-02T09:18:19.470 に答える
0

以下のようなことをしてください

        Intent receiveIntent = this.getIntent();
        String etz1 = receiveIntent.getStringExtra("e1");

        double erz1Double = Double.parseDouble(etz1); //converting into double
      // follow same for all the string values, dont forget to add try Catch for number formatException, and null check for string values

編集:- double を文字列にキャストするには、以下のような多くの方法があります

 String erz1String = erz1Double + "";

       or


 String erz1String = String.valueOf(erz1Double);
于 2013-02-02T09:14:10.443 に答える