2012-02-07 2 views
0

Я создаю простое приложение java/android и пытаюсь изменить значение строки (которая используется как текст кнопки), хранящейся в файле ресурсов.Строковая переменная Android всегда окончательная в R.java

Всякий раз, когда я пытаюсь изменить значение (используя R.string.), Я получаю сообщение об ошибке. Это связано с тем, что в этом файле (R.string one) переменная является «final». Всякий раз, когда я пытаюсь отредактировать файл, он возвращается к исходной версии.

Если есть способ остановить эту строку, являющуюся окончательной, или есть другой способ передать значения для текстового свойства что-то вроде этого?

+6

Не изменяйте значение строки, измените текстовое значение кнопки. 'R' автогенерируется, не редактируйте его. –

+0

@Dave - ответьте на этот вопрос – KevinDTimm

ответ

2

Вы не можете напрямую изменить файл R (он автоматически генерируется как часть процесса сборки).

Если вы хотите изменить метку кнопки, вы можете установить его в коде, как это:

myButton.setText (R.string.myString)

, если вы хотите изменить его в другую строку, вы всегда можете просто установить его на другие предопределенные строки, как это:

myButton.setText (R.string.myOtherString)

класс R будет автоматически делать ссылки на строки из вашего strings.xml файл (который должен находиться в папка res \ values)

+0

Спасибо за это. У меня теперь есть 'R.id.textView1.setText (" 4 ");', но я получаю эту ошибку: «Не могу вызвать setText (int) для примитивного типа int. Спасибо – ACarter

+0

Вам нужно сначала решить вашу кнопку: TextView tv = (TextView) findViewById (R.id.textview1); tv.setText ("4"); Вам нужно сделать это за 2 шага. – Booger

1

Ресурсы являются статическими. Период. И R/Class генерируется из ваших объявлений ресурсов xml. Если вы хотите сохранить редактируемые значения, используйте настройки.

5

Не изменяйте значение строки, измените текстовое значение кнопки.

R автогенератор, не редактируйте его.

+0

Спасибо, но как изменить текстовое значение кнопки? Я здесь немного n00b. – ACarter

+1

@ACarter передать другую строку в 'setText()'. –

+0

@ACarter Что сказал Мэтт; см. [setText() docs] (http://developer.android.com/reference/android/widget/TextView.html#setText (java.lang.CharSequence)) для получения дополнительной информации. –

Смежные вопросы