web-dev-qa-db-ja.com

テキストを整数値に設定

TextViewを整数の値として設定したいのですが、うまくいけば次のようになります。

tv.setText(int)

私はこれを試しましたが、このエラーが発生しました。

また、私の整数値は別のクラスにあります

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.example.application, PID: 29603
  Java.lang.IllegalStateException: Could not execute method for Android:onClick
      at Android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.Java:293)
      at Android.view.View.performClick(View.Java:5207)
      at Android.view.View$PerformClick.run(View.Java:21168)
      at Android.os.Handler.handleCallback(Handler.Java:746)
      at Android.os.Handler.dispatchMessage(Handler.Java:95)
      at Android.os.Looper.loop(Looper.Java:148)
      at Android.app.ActivityThread.main(ActivityThread.Java:5443)
      at Java.lang.reflect.Method.invoke(Native Method)
      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:728)
      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:618)
   Caused by: Java.lang.reflect.InvocationTargetException
      at Java.lang.reflect.Method.invoke(Native Method)
      at Android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.Java:288)
      at Android.view.View.performClick(View.Java:5207) 
      at Android.view.View$PerformClick.run(View.Java:21168) 
      at Android.os.Handler.handleCallback(Handler.Java:746) 
      at Android.os.Handler.dispatchMessage(Handler.Java:95) 
      at Android.os.Looper.loop(Looper.Java:148) 
      at Android.app.ActivityThread.main(ActivityThread.Java:5443) 
      at Java.lang.reflect.Method.invoke(Native Method) 
      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:728) 
      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:618) 
   Caused by: Android.content.res.Resources$NotFoundException: String resource ID #0x1
      at Android.content.res.Resources.getText(Resources.Java:312)
      at Android.widget.TextView.setText(TextView.Java:4427)
16
MPKenning

一般的に、

tv.setText(String.valueOf(int));

値が別のクラス内にある場合?そのクラスで必要な値のゲッターを作成できます。

public int getValue() {
    return value;
}

あなたが他のものからそれにアクセスできるように:

[〜#〜] but [〜#〜] TextViewをintに設定すると、Androidresource id。intの値をテキストとして(それが指すリソースではなく)必要な場合は、最初に文字列にします。

tv.setText(String.valueOf(theOtherClassInstance.getValue()));

[〜#〜] edit [〜#〜]以下のコメントに従ってintがfirstResultの場合、ゲッターは次のようになります。

public int getFirstResult() {
    return firstResult;
}
39
Guillaume

SetText(int)を実行すると、値自体ではなく、XMLファイルのアプリケーションリソースを参照します。

整数を適切に設定するには、次のようにします。

tv.setText(""+integer);

以上の解決策:

tv.setText(String.valueOf(integer));
22
Corbella