TextView.setText () бросил обработчик, выбрасывает исключение ResourceNotFound (Android Studio) - PullRequest
0 голосов
/ 29 августа 2018

Привет разработчики,

Сначала все это в Android Studio У меня есть обработчик, который вызывается из runnable:

private Runnable runnable = new Runnable() {
        @Override
        public void run() {
            handler.postDelayed(this, 1000);
            fight();
        }
    };

, который вызывает этот метод "fight ()". Что этот метод в основном должен делать, это установить текст TextView:

tv_playerdmg.setText(dmg); 

В этой строке программа выдает исключение ResourceNotFound:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.alexander.rpg, PID: 31642
                  android.content.res.Resources$NotFoundException: String resource ID #0x8f5
                      at android.content.res.Resources.getText(Resources.java:1184)
                      at android.widget.TextView.setText(TextView.java:5218)
                      at com.example.alexander.rpg.Fight.fight(Fight.java:398)
                      at com.example.alexander.rpg.Fight$1.run(Fight.java:68)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6816)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1563)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1451)

Понятия не имею, почему это происходит, в другой момент я меняю возможность включения кнопок (если это слово: D) в обработчике, что не создает никаких проблем.

У кого-нибудь есть идея?

Привет Пумпаникель

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

setText должен быть запущен в потоке пользовательского интерфейса. как показано ниже:

  runOnUiThread(new Runnable() {
      @Override
      public void run() {
        fight();
      }
      });
0 голосов
/ 29 августа 2018

Я только что изменил "dmg", что такое Integer, на Integer.toString (dmg), который работал нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...