Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

09.02.2016, 22:52. Просмотров 278. Ответов 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);
Как заставить выводить именно СТРОКУ, а не ее название?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2016, 22:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как заставить setText(); выводить строку а не ее название? (Программирование Android):

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

Как заставить консоль выводить кириллицу - Assembler
Здравствуйте. Есть такой код: .386 .model flat, stdcall option casemap:none ExitProcess proto :dword GetStdHandle proto :dword ...

Как заставить выводить точку в вещественных числах? - C# MVC
JavaScript-код требует точки в качестве разделителей дробной и целой частей. Как формат настроить? Я не могу передать значения в массив...

Как заставить IDE выводить программу в консоль? - JAVA IDE
Есть программа на паскале, генерирующая лабиринт. Переписал на Java, но компилятор выводит только &quot;Process finished with exit code 0&quot;. Как...

Как заставить компилятор выводить имя файла? - C++
Всем привет! Компилятор GCC. Из Readme: Проблема вот в чем. Создал батник, для экономии действий, следующего содержания: ...

Как заставить TEdit выводить только дробное число - Delphi
Доброго времени суток. Подскажите, как заставить TEdit выводить только дробное число. Т.е. всегда должна быть десятичная часть. Например:...

4
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
09.02.2016, 23:51 #2
К строкам надо обращаться так:
R.string.q1
R.string.q2
R.string.q3
это просто константы int
0
Cheshire_161
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 18
09.02.2016, 23:58  [ТС] #3
Lumber, но как мне это сделать внутри setText() если название строки состоит наполовину из строки, наполовину из переменной int ?
0
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
10.02.2016, 00:33 #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]);
1
Cheshire_161
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 18
10.02.2016, 01:02  [ТС] #5
Lumber, Спасибо, помогло
0
10.02.2016, 01:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2016, 01:02
Привет! Вот еще темы с ответами:

Как заставить AccXP выводить в отчетах JPG фото ? - MS Access
Отчет подключен к таблице, в таблице в поле указан только путь к jpeg файлам. Через OLE bound показывает только bmp :(

Как заставить программу выводить результаты в файл Excel? - Delphi
Можно ли сделать так, чтобы программа сохраняла получаемые результаты (последовательность чисел) в файл Microsoft Excel? Т.е. первое...

Как выводить название картинки? - HTML, CSS
Здравствуйте! Есть сайт http://yabvdul.16mb.com/ (пока что на бесплатном хостинге, как сделаю куплю нормальный) Внизу там пишет...

Как по ip выводить на сайте название города - JavaScript
Народ даже не знаю в какой раздел форума стучаться. Такая задача- нужно чтоб в зависимости от IP посетителя менялось название города в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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