Ресурс не найден TextView

Я делаю первые шаги в Android и начинаю с очень простого приложения, которое отслеживает прогресс через шаблон вязания и показывает инструкции для соответствующей строки.

Я хочу программно обновить несколько объектов TextView. Однако, используя getViewById (), похоже, что они не идентифицируют их должным образом и приложение не работает.

После поиска в Google кажется, что иногда возникают проблемы с пространством имен XML в XML-макете, но мой выглядит нормально. Может быть, это что-то связано с областью?

instructions.java (это единственное действие)

package uk.co.oketchup.blanketsquare; import android.app.Activity; import android.os.Bundle; import android.content.SharedPreferences; import android.widget.Button; import android.widget.TextView; import android.view.View.OnClickListener; import android.view.View; public class instructions extends Activity { private int mRow; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* retrieve row from shared preferences, or start from zero if nothing there */ SharedPreferences settings = getPreferences(MODE_PRIVATE); mRow = settings.getInt("row",0); setContentView(R.layout.main); /* associate onClick listeners with the two buttons */ final Button btnIncrement = (Button) findViewById(R.id.increment); btnIncrement.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Increment row ++mRow; calcAndUpdate(); } }); final Button btnDecrement = (Button) findViewById(R.id.decrement); btnDecrement.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Decrement row --mRow; calcAndUpdate(); } }); } private void calcAndUpdate() { String Instructions; int knit1; int knit2; int remaining; if (mRow%2 == 1 ) { /* Odd row */ knit1 = 40 - mRow; Instructions = "K" + knit1; remaining = knit1; } else { /* Even row */ knit1 = 18 - mRow/2; knit2 = knit1 + 1; Instructions = "Sl 1, k" + knit1 + ", [sl 1 kwise] 2 times, k1, p2sso, k" + knit2; remaining = knit1 + knit2 + 2; } /* Update the display */ TextView tRow = (TextView) findViewById(R.id.row); TextView tInstr = (TextView) findViewById(R.id.instr); TextView tStRem = (TextView) findViewById(R.id.stitchremain); /* Set the text */ tRow.setText(mRow); tInstr.setText(Instructions); tStRem.setText(remaining); } } 

/ res / layout / main.xml

     

Объекты TextView, похоже, были зарегистрированы нормально, поскольку они появляются в R.java

 public static final class id { public static final int decrement=0x7f050003; public static final int increment=0x7f050002; public static final int instr=0x7f050001; public static final int row=0x7f050000; public static final int stitchremain=0x7f050004; } 

Вот сообщение об ошибке, показанное в ddms.

 Uncaught handler: thread main exiting due to uncaught exception android.content.res.Resources$NotFoundException: String resource ID #0x1 at android.content.res.Resources.getText(Resources.java:200) at android.widget.TextView.setText(TextView.java:2813) at uk.co.oketchup.blanketsquare.instructions.calcAndUpdate(instructions.java:75) at uk.co.oketchup.blanketsquare.instructions.access$100(instructions.java:11) at uk.co.oketchup.blanketsquare.instructions$1.onClick(instructions.java:33) [etc] 

Большое спасибо за вашу помощь.

mRow – целое число. Когда вы вызываете setText (mRow) в строке 75, он думает, что вы пытаетесь установить текст с ресурсом String с ID = значением mRow.

Вместо этого выполните:

 tRow.setText(Integer.toString(mRow)); 

Вы должны всегда преобразовывать другие значения в строку перед установкой ее в textview, например

  txtX.setText(Integer.toString(intVal)); 
  • Как создать наложение справки, как вы видите в нескольких приложениях для Android и ICS?
  • Транзитные зависимости не разрешены для aar-библиотеки с использованием gradle
  • R не может быть разрешено переменной
  • RecyclerView и java.lang.IndexOutOfBoundsException: обнаружена несогласованность. Недействительный адаптер держателя держателя ViewView в устройствах Samsung
  • Использование ResultReceiver в Android
  • Разница между контекстом работы и контекстом приложения
  • Макет дизайна для нескольких экранов
  • Добавление элементов управления яркостью экрана в приложение для Android
  • Многострочный EditText с кнопкой «Готово»
  • Как узнать, прокручивается ли RecyclerView / LinearLayoutManager сверху или снизу?
  • как измерять скорость загрузки / скачивания и задержку в соединении Wi-Fi для Android
  • Interesting Posts

    Как настроить Visual Studio на использование Beyond Compare

    Экспорт android в csv и отправка в виде вложения электронной почты

    Какое лучшее решение для резервного копирования Ubuntu для нетехнического пользователя?

    Как получить изменяемые ссылки на два элемента массива одновременно?

    NSOperation на iPhone

    Получение событий из базы данных

    Как сделать свое приложение открытым при входе в систему?

    Настройка Tree.collapsedIcon для одного JTree

    Как обмениваться Интернетом между двумя компьютерами через USB?

    Не удалось создать путь PKIX: не удалось найти допустимый путь сертификации для запрошенной цели

    Ошибка распространения VC ++ 2008: доступ запрещен

    Как сопоставить динамический url / prj / noticeOpen / 2 в Spring MVC-controllerе

    OSX – замените gcc версии 4.2.1 на 4.9, установленную через Homebrew

    Как я могу снова включить веб-интерфейс маршрутизатора dd-wrt без подключения к SSH или telnet?

    JPA: однонаправленное многоканальное и каскадное удаление

    Давайте будем гением компьютера.