0

このコードはinvocationTargetExceptionをスローしています。このコードにはいくつかの問題があります。

  1. に何も入力されていない場合は特に指示していませんが、まだifステートメントを入力していEditTextます。
  2. 解析するものがないために例外が発生した可能性があると思いますparseInt(問題はないはずですが)。
  3. このタイプの例外の原因は、適切なタイミングで何かを開始するべきではありませんか?

    if(ageText.getText().toString() != "" || ageText.getText().toString() != null)
    {
        newCharacterController.characterAge = Integer.parseInt(ageText.getText().toString());
    }
    

少し外れたトピックでも、プログラムの実行中にその値を調べると、またはtagのようなコンテナのいずれかを見つけることができないようですが、これは私の影響を受け、動作しなくなった場合に停止しますか?また、値を取得するためのより良い方法があります(C#の.getType())。SpinnerEditTextmTagif(parent.getTag() == "OBJECTIDGIVENBYMYSELF")tag

上記のOBJECTNAMEGIVENBYMYSELFの例はですEditText ***newEditText*** = new EditText(this);

4

1 に答える 1

0
ageText.getText().toString() != ""

上記のコードは、文字列の内容を比較するのに適した方法ではありません。「==」などの比較演算子は、値ではなく参照による比較に使用されるためです。代わりに次のコードを使用する必要があると思います

ageText.getText().toString().equals("")

ちなみに、この前にnullをチェックしてください。

于 2012-06-28T04:31:06.790 に答える