0

だから私はまだここで私の最初の小さなアプリに取り組んでいます.AndroidとJavaの新機能なので、ここで基本的な小さな問題に行き詰まっています. 最初の質問への回答は非常に役に立ちました。調査しても何も思い浮かばなかったので、さらに助けを求めようと思いました。

別の画面でユーザーが A、B、C、または D を選択し、その選択がインテントを介して文字列として渡されるという考え方です。OnResume は、選択が null でないかどうかを確認し、その文字列に対応する整数を設定します。後でユーザーが別のボタンを押すと、if else ロジックがその int をチェックし、選択されたものに基づいてアクションを実行します。問題は、アプリが onResume でクラッシュしたことです。

文字列参照を比較するには equals(string) を使用する必要があることを学びましたが、文字列をリテラル文字列と比較しようとしていることが問題なのでしょうか? どんな助けでも大歓迎です。ありがとう!

        protected void onResume() {
    super.onResume();

    // Get the message from the intent
    Intent intent = getIntent();
    String choice = intent
            .getStringExtra(ExtensionSetupSlector.TORQUE_SETUP);

    // Create the text view
    TextView displayChoice = (TextView) findViewById(R.id.displayChoice);
    if (!choice.equals("")){
    displayChoice.setText(choice);

    if (choice.equals("A")) {
        myChoice = 1;
    }
    if (choice.equals("B")) {
        myChoice = 2;
    }
    if (choice.equals("C")) {
        myChoice = 3;
    }
    if (choice.equals("D")) {
        myChoice = 4;
    }

}
}

myChoice は ...extends Activity{ の直後に宣言されます。また、これが本当に onResume にあるのかどうかはよくわかりませんが、 onResume で myChoice を設定しようとする前に機能していました (選択肢を表示していたとき)。再度、感謝します!

4

1 に答える 1

0

代わりにnullif (!choice.equals(""))をチェックするように変更 します。そうしないと、アプリが空の参照にアクセスしようとしてクラッシュします。

于 2012-12-08T17:57:40.223 に答える