Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
igrok-vip
0 / 0 / 2
Регистрация: 22.04.2013
Сообщений: 123
1

Содержимое переменной в качестве имени переменной

27.04.2013, 14:29. Просмотров 1712. Ответов 12
Метки нет (Все метки)

Подскажите пожалуйста возможно ли использовать содержимое строковой переменной (допустим str="TextView1") в качестве имени переменной?

Допустим объявлена переменная TextView TextView1 = (TextView)findViewById(R.id.TextView1);
и в переменной str хранится имя этой переменной String str = "TextView1";

И я хочу использовать именно содержимое str, чтобы обратиться к метке TextView1 и задать ей текст. Возможно ли такое?

Может как-то можно найти объект findViewById(R.id.TextView1), используя свою строковую переменную? Вроде: findViewById("R.id."+str) - но так не работает.

И сразу ещё вопрос: если программно создавать метку, то как ей присвоить текстовый ID? Пишу button1.setId() - просит дать числовой параметр.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2013, 14:29
Ответы с готовыми решениями:

Получить содержимое строки по содержанию переменной, но не из файла strings.xml
"a" это кнопка, и я задаю название кнопки. Название кнопки записано в файле...

Инициализация переменной
Добрый день. Написал простую программу и не могу разобраться, глюк в программе...

Сохранение переменной
Скажите, пожалуйста, как можно сохранить переменную, а после перезапуска...

ошибка переменной
Я новичок в программировании, недавно столкнулся с проблемой, которую никак не...

Описание переменной, комментарий
Подскажите как в Eclipse можно сделать подсказку об переменной, в VisualStudio...

12
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.04.2013, 15:26 2
можете использовать Tag: setTag("tag"), findViewWithTag("tag")
0
igrok-vip
0 / 0 / 2
Регистрация: 22.04.2013
Сообщений: 123
27.04.2013, 16:02  [ТС] 3
Блин, а почему эклипс ругается на findViewWithTag?

Пишу: TextView tv = findViewWithTag("tag1"); - предлагает создать метод или поменять на findViewById. Похоже нужно что-то сделать с MainActivity?

И что на счёт setId? Как задать строковый ID?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.04.2013, 16:11 4
Цитата Сообщение от igrok-vip Посмотреть сообщение
Пишу: TextView tv = findViewWithTag("tag1"); - предлагает создать метод или поменять на findViewById. Похоже нужно что-то сделать с MainActivity?
это нужно вызывать к лаяуту - mainLayout.findViewWithTag


Цитата Сообщение от igrok-vip Посмотреть сообщение
И что на счёт setId? Как задать строковый ID?
никак.
0
igrok-vip
0 / 0 / 2
Регистрация: 22.04.2013
Сообщений: 123
27.04.2013, 16:37  [ТС] 5
Цитата Сообщение от V0v1k Посмотреть сообщение
никак.
А подскажите тогда:
Как можно создать на окне неопределённое число текстовых меток (число будет определяться в onCreate), так, чтобы к ним можно было потом обратиться при нажатии? При нажатии же проверяется id объекта?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.04.2013, 17:08 6
не понял вопроса. объясните зачем вам это нужно.
0
igrok-vip
0 / 0 / 2
Регистрация: 22.04.2013
Сообщений: 123
27.04.2013, 17:18  [ТС] 7
Есть изменяемая таблица 4 столбца Х строк. Строки могут добавляться.

Для вывода данных из таблицы использую TableLayout, так как только из него можно сделать что-то похожее на табличку. У GridView все поля одинаковой ширины.

К TableLayout не прикрутить адаптер, который бы сам создавал item'ы с новыми ID, и приходится это делать вручную. А так как количество строк заранее неизвестно, то хочу создавать TextView "находу" и запихивать их в TableLayout.

А ID нужны для того, чтобы по нажатию на метку можно было изменить данные и занести их в базу.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.04.2013, 17:38 8
Цитата Сообщение от igrok-vip Посмотреть сообщение
Есть изменяемая таблица 4 столбца Х строк. Строки могут добавляться.
Для вывода данных из таблицы использую TableLayout, так как только из него можно сделать что-то похожее на табличку. У GridView все поля одинаковой ширины.
К TableLayout не прикрутить адаптер, который бы сам создавал item'ы с новыми ID, и приходится это делать вручную. А так как количество строк заранее неизвестно, то хочу создавать TextView "находу" и запихивать их в TableLayout.
я ListView всегда использовал для этого.


Цитата Сообщение от igrok-vip Посмотреть сообщение
А ID нужны для того, чтобы по нажатию на метку можно было изменить данные и занести их в базу.
как id должен в этом помочь? зачем именно id? зачем строковый?

Добавлено через 12 минут
вам нужно при нажатии метки в строке х получить данные с других View в этой строке? если да, то засуньте в тег метки индекс строки и по индексу можно получить лаяут нужную строки методом mainLayout.getChildAt(index), а потом с него уже получить все необходимое.

Добавлено через 58 секунд
а еще в тег можно засунуть свой класс который уже будет содержать все нужные View строки.
0
igrok-vip
0 / 0 / 2
Регистрация: 22.04.2013
Сообщений: 123
27.04.2013, 17:42  [ТС] 9
Ну необязательна id текстовый конечно, я просто думал, что это возможно (пригодилось бы для удобства и эстетичности)) ). Я уже всё догнал) Буду создавать метку, задавать ей числовой ID и по нему потом определять нажатие. Спасибо за помощь.

А таблицу из ListView вы делали с помощью нескольких ListView по количеству столбцов, а сетку с помощью отступов между ними? А возможно ли запретить прокручиваться этому ListView если он будет выходить за границу экрана по высоте(а то будут прокручиваться колонки по отдельности) и запихнуть их в ScrollView? А то xml ругался что нельзя вкладывать 1 View в другой с одинаковыми прокручиваниями. Вообщем по ListView у меня было много вопросов, поэтому решил делать с помощью TableLayout)

Добавлено через 1 минуту
Цитата Сообщение от V0v1k Посмотреть сообщение
вам нужно при нажатии метки в строке х получить данные с других View в этой строке?
нет, просто узнать номер строки и столбца, но я уже понял как.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.04.2013, 17:49 10
Цитата Сообщение от igrok-vip Посмотреть сообщение
А таблицу из ListView вы делали с помощью нескольких ListView по количеству столбцов, а сетку с помощью отступов между ними?
нет, одним ListView и каждый элемент листа поделен на столбцы.
0
igrok-vip
0 / 0 / 2
Регистрация: 22.04.2013
Сообщений: 123
27.04.2013, 17:55  [ТС] 11
Даже не представляю как это можно сделать) Я ещё совсем начинающий) Буду пока пробовать через table
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.04.2013, 18:07 12
GridView with different column sizes

Добавлено через 1 минуту
http://stackoverflow.com/questions/6...t-column-sizes
http://stackoverflow.com/questions/1...t-column-sizes
0
igrok-vip
0 / 0 / 2
Регистрация: 22.04.2013
Сообщений: 123
28.04.2013, 21:03  [ТС] 13
Скажите как можно программно задать android:layout_marginRight для TextView?
Пытался создать MarginLayoutParams tvParams = new MarginLayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); tvParams.rightMargin = 1; и применить.
Но тогда TextView вообще не отображается.
0
28.04.2013, 21:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2013, 21:03

Вывод переменной в ActionBar
Скажите, пожалуйста, возможен ли вывод из SharedPreferences числа в ActionBar?...

Сохранение данных из переменной
Смотрите. У меня есть переменная money. Её значение изменяется. Как сделать с...

Обнуление переменной по времени
Всем привет. Вопрос: как можно обнулять переменную по конкретному времени?...


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

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

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