Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Cheshire_161
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 18
#1

Как заставить setText(); выводить строку а не ее название? - Программирование Android

09.02.2016, 22:52. Просмотров 239. Ответов 4
Метки нет (Все метки)

Добрый вечер!
Необходимо выводить строку из strings.xml, которая будет меняться в зависимости от переменной i.
В данный момент просто выводится "q1" потом "q2" и "q3".

strings.xml :
XML
1
2
3
<string name="q1">Текст_1</string>
    <string name="q2">Текст_2</string>
    <string name="q3">Текст_3</string>
Вот кусок кода с проблемой:
Java
1
2
3
4
5
6
7
8
if (i<3){
            i++;
            result++;
            text.setText("q" + i);
        }
        else{
            intent2.putExtra("name",result);
            startActivity(intent);
Как заставить выводить именно СТРОКУ, а не ее название?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2016, 22:52     Как заставить setText(); выводить строку а не ее название?
Посмотрите здесь:

Как заставить виджет выводить информацию из файла по времени? - Программирование Android
как заставить виджет выводить информацию из фаила по времени? я начинающий Android Studio.

ViewPager setText - Программирование Android
Приветствую ув.форумчане! Скопировал данный код из startandroid,помогите как сделать, чтобы при каждом слайде был разный текст который...

.setText = ошибка - Программирование Android
Пытаюсь установить текст после выполнения операции - ошибка приложения. Где ошибка?! P.S. все это находиться в onResumeOnClickListener...

Ошибка setText() в EditText - Программирование Android
в toolbar в виде пункта меню есть EditText который виден всегда. EditText &lt;EditText android:id=&quot;@+id/rate&quot; ...

MyTextView.setText вызывает ошибку - Программирование Android
Начал учиться программированию на андроид и почти сразу наткнулся на такую проблему: 06-15 15:44:02.263: D/AndroidRuntime(337): Shutting...

Метод .setText не показывает русские символы - Программирование Android
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Моя проблема в том, что при смене текста в TextView с помощью метода...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
09.02.2016, 23:51     Как заставить setText(); выводить строку а не ее название? #2
К строкам надо обращаться так:
R.string.q1
R.string.q2
R.string.q3
это просто константы int
Cheshire_161
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 18
09.02.2016, 23:58  [ТС]     Как заставить setText(); выводить строку а не ее название? #3
Lumber, но как мне это сделать внутри setText() если название строки состоит наполовину из строки, наполовину из переменной int ?
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
10.02.2016, 00:33     Как заставить setText(); выводить строку а не ее название? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Нет, у строки нет названия есть идентификатор, целое число. q1 это имя переменной (неизменяемой) в которой хранится это целое число. Получить из строки в которой содержится имя переменной значение этой переменной нельзя (*на самом деле можно через рефлексию, но не стоит так делать)

Видимо правильное решение состоит в том чтобы строки хранить в ресурсе типа массив строк.

Примерно так (код пишу без проверки).
это не strings.xml, в отдельном файле:
XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="q123">
        <item>Текст_1</item>
        <item>Текст_2</item>
        <item>Текст_3</item>
    </string-array>
</resources>
Java
1
2
3
4
5
6
7
8
9
10
String[] strings = res.getStringArray(R.array.q123);
 
if (i<3){
            i++;
            result++;
            text.setText(strings[i]);
        }
        else{
            intent2.putExtra("name",result);
            startActivity(intent);

UPDATE:

Вот ещё как можно сделать: прописать идентификаторы строк в массив int.

создать поле, в него ссылку на массив:
int[] q123 = {R.string.q1, R.string.q2, R.string.q3}

потом обращаться: q123[0], q123[1], q123[2]

Java
1
text.setText(q123[i]);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2016, 01:02     Как заставить setText(); выводить строку а не ее название?
Еще ссылки по теме:

Android Studio подсвечивает красным метод setText - Программирование Android
Здравствуйте. Я начинающий, пока разбираю простейшие примеры из сети. Вот один из них - из java нужно изменить текст в макете: 1....

Как заставить работать BroadcastReceiver? - Программирование Android
Добрый день! Собственно идея: есть стандартный плеер телефона(HTC One m7 Android 4.4.3) и проводная гарнитура с одной кнопкой. Но по...

Scroll - как заставить скроллиться - Программирование Android
Здравствуйте. Появилась проблема: на активити много разных view. Когда тапишь в элемент с клавиатурой (например, EditText) открывается...

Как выводить текст используя ListView - Программирование Android
Здраствуйте уважаемые разработчики, помогите с такой задачкой - Как выводить текст из файла на TextView при нажатии на Listview id ...

Как заставить вращаться картинку кодом? - Программирование Android
Мне нужно что бы картинка вращалась, стандартные анимации не дают возможности каждый раз менять угол остановки. А мне нужно что бы картинка...

Как выводить сообщение об отсутствии соединения с интернетом? - Программирование Android
Здравствуйте! У меня в ViewPager загружаются 2 фрагмента. Каждый фрагмент делает асинхронный запрос, ответ парсится с помощю JSON. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Cheshire_161
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 18
10.02.2016, 01:02  [ТС]     Как заставить setText(); выводить строку а не ее название? #5
Lumber, Спасибо, помогло
Yandex
Объявления
10.02.2016, 01:02     Как заставить setText(); выводить строку а не ее название?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru