1

混乱する問題があります。EditTextの値を使用してintに変換したいのですが、logcat "invalid int"に表示されるアクティビティを起動すると、editTextの入力値が9桁になります。問題を見つけるのを手伝ってくれませんか

これは私のコードです:

     String texti =  numberi.getText().toString();
     int x = Integer.parseInt(texti);
4

7 に答える 7

1

あなたはそれを保存する必要がありますlong

long x = Long.parseLong(texti);
于 2013-02-22T05:06:51.520 に答える
1

唯一の目的がユーザーがEditTextに数値を入力できるようにすることである場合は、次を使用します。

android:inputType="number"

その後Integer.parseInt(editText.getText().toString());

于 2013-02-22T05:08:44.167 に答える
1

あなたはあなたがそれを書いたと言ったonCreate()。したがって、最初に確認する必要があります。テキストがnullかどうかを確認してください。

String texti =  numberi.getText().toString();
long x;
if(texti.trim().length() > 0)
  x = Long.parseLong(texti);
于 2013-02-22T05:18:23.970 に答える
0

文字列から整数への解析:

    Integer.parseInt(<Your EditText>.getText().toString());
于 2013-02-22T05:27:59.657 に答える
0

の整数は値textiよりも大きい可能性があるため、代わりに使用してくださいInteger.MAX_VALUELong

long x = Long.parseLong(texti.trim());
于 2013-02-22T05:07:19.097 に答える
0

あなたが持っているコードは正しいですが、より良い方法のためにこれを使用してください、

  String texti =  numberi.getText().toString();
  int x = Integer.parseInt(texti.trim());  // Trim the extra spaces, if any.

数値形式に変換するときは、常にtrim()する習慣があります。これにより、NumberFormatException

于 2013-02-22T05:07:20.443 に答える
0

理想的には、EditTextが整数のみを受け入れる場合は、inputTypeプロパティを次のいずれかに 設定する必要があります。

  • numberSigned
  • 番号

例えば。このようなもの:

<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editTextCustomerPin"
        android:layout_marginTop="20dp"
        android:inputType="numberSigned"
        android:textSize="16dp" android:hint="@string/enterCustomerPin"
        android:layout_gravity="center_horizontal"/>

今あなたの活動では、あなたはいつでもすることができます:

EditText myEditText = (EditText) findViewById(R.id.editTextCustomerPin);
String editTextContent = myEditText.getText().toString();
if (editTextContent.length() > 0) {
     int num = Integer.parseInt(num);
     //Do your processing
} else {  
     //Show error message, eg. a toast or an alert dialog
}
于 2013-02-22T05:46:04.970 に答える