Подтвердить что ты не робот

Задайте текст для целочисленного значения

Я хочу установить 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)
4b9b3361

Ответ 1

Как правило,

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

Если значение находится внутри другого класса? Вы можете сделать getter для значения, которое вы хотите в этом классе:

public int getValue() {
    return value;
}

Чтобы вы могли получить доступ к нему из другого:

НО, если вы установите TextView в int, он будет интерпретироваться как идентификатор ресурса Android. Если вы хотите, чтобы значение int как ваш текст (а не ресурс, на который оно указывает), сначала сделайте его строкой.

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

EDIT Если ваш int firstResult в соответствии с вашим комментарием ниже, то получатель становится:

public int getFirstResult() {
    return firstResult;
}

Ответ 2

Выполняя setText (int), вы ссылаетесь на ресурс приложения из файлов XML, а не на само значение.

Чтобы установить правильное целое число, выполните следующие действия:

tv.setText(""+integer);

или лучшее решение:

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