1

ユーザーが数字を入力できる編集テキストを作成しました。私のアプリでは、ユーザーは送信ボタンをクリックして値を送信できます。

String st1=editText1.getText().toString();
int tempVal1=Integer.parseInt(st);
String st2=editText2.getText().toString();
int tempVa2=Integer.parseInt(st);
String st3=editText2.getText().toString();
int tempVal3=Integer.parseInt(st);

しかし、ここで私の問題は、ユーザーが最初の editText に値を入力せず、2 番目と 3 番目のみを入力して送信した場合、tempVal1 の値は 0 になるはずです。任意のデータを持っています。この例外を回避し、それぞれの編集テキストに何も入力しない場合に tempVal 0 を維持するにはどうすればよいですか?

この行を追加すると int x=Integer.valueOf(editText.getText());、次のエラーが発生します。なんで?The method valueOf(String) in the type Integer is not applicable for the arguments (Editable)

私の疑問を明確にしてください。

4

4 に答える 4

7

EditTextNumber に変換する前にを確認する必要があります。

if( !editText1.getText().toString().equals("") && editText1.getText().toString().length() > 0 )
{
    // Get String
    Integer.parseInt(editText1.getText().toString());
}
于 2012-09-11T05:49:53.053 に答える
1

以下のように、編集テキストが null でないか、編集テキストに値がないかの条件を確認する必要があります。

EditText の条件が空白ではありません。

if(editText1.getText().toString().length() != 0)
{
    // Get String
    Integer.parseInt(editText1.getText().toString());
}
于 2012-09-11T05:45:07.777 に答える
0

Integer 型のメソッド valueOf(String) は引数に適用できません (編集可能)

文字列引数を探しているが取得することを意味しますEditable

試すx=Integer.valueOf(editText.getText().toString());

そして例外について:

コードを で囲むTry & Catchか、整数を解析する前に Null チェックを行います。

于 2012-09-11T05:48:05.753 に答える
0

String は空白であり、空白は整数に解析できないため、NumberFormatException を取得する必要があります。したがって、これらの変数を 0. で初期化し、解析コードを try catch に入れます。以下のように:

int tempVal1=0;
int tempVal2=0;
int tempVal3=0;

String st1=editText1.getText().toString();
try{    
  tempVal1=Integer.parseInt(st1);
}
catch(NumberFormatException ex) {}

String st2=editText2.getText().toString();
try{
   tempVal2=Integer.parseInt(st2);
}
catch(NumberFormatException ex){}

String st3=editText2.getText().toString();
try{    
   tempVal3=Integer.parseInt(st3);
}
catch(NumberFormatException ex){}
于 2012-09-11T05:48:10.217 に答える