-1

Android アプリケーションの 2 つのアクティビティ間でデータを渡そうとしていますが、データを送信するオンクリック メソッドを実行しようとすると、アプリがクラッシュします。

これは、私の計算が結果と呼ばれる別のアクティビティに送信しようとしているアクティビティのコードです。送信しようとしている変数出力は double です。

Intent myIntent = new Intent(BMIMetric.this, result.class);
BMIMetric.this.startActivity(myIntent);
myIntent.putExtra("key", output);

次に、結果ページで、このコードで変数を取得しようとしています

Intent myIntent = getIntent();
double output = (Double) getIntent().getExtras().get("Key");
4

1 に答える 1

4

まず、注文の問題があります (編集されたコード):

Intent myIntent = new Intent(BMIMetric.this, result.class);
myIntent.putExtra("key", output);
BMIMetric.this.startActivity(myIntent);

新しいアクティビティを開始する前に、エクストラを設定する必要があります。

次に、他のアクティビティで次のことを行います。

Intent myIntent = getIntent();
double output = getDoubleExtra ("key", -1.0);

getDoubleExtra()プリミティブデータ型に割り当てているため、より適しているようです。

また、Blumer が述べたように、"key"スペルが異なっていました。同じ綴りのキーが必要です。それがどのように機能するかです。そうしないと、別のことを言っていることになり、見つかりません。

また、使用に加えて、getExtras()使用getExtras().get()してキーが見つからない場合はnull、見返りを得ることができます。Doubles は最近では自動ボックス化/ボックス化解除できますが、そうすると

Double doubleObject = null;
double d = doubleObject;

あなたはまだ得るでしょうNullPointerException

于 2013-01-10T23:06:54.633 に答える