Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 2
Регистрация: 22.04.2013
Сообщений: 132
1

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

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

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста возможно ли использовать содержимое строковой переменной (допустим 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2013, 14:29
Ответы с готовыми решениями:

Содержимое переменной в качестве переменной
Всем доброго времени суток! помогите решить задачку)) Если сделать так ${USER} то получим имя...

Unicode в качестве имени переменной
Идентификаторы могут записываться с помощью Unicode, \uXXXX, где XXXX - четырёхзначный...

Значение переменной в качестве имени поля
Привет как значение переменной сделать как имя поля??? var myClass = function(){ ...

Синтаксис запроса с переменной в качестве имени таблицы
Коллеги, привет! что-то не могу разобраться в вопросе, нужна Ваша помощь. Смысл вопроса в двух...

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

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

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

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

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

А ID нужны для того, чтобы по нажатию на метку можно было изменить данные и занести их в базу.
0
1162 / 986 / 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
1 / 1 / 2
Регистрация: 22.04.2013
Сообщений: 132
27.04.2013, 17:42  [ТС] 9
Ну необязательна id текстовый конечно, я просто думал, что это возможно (пригодилось бы для удобства и эстетичности)) ). Я уже всё догнал) Буду создавать метку, задавать ей числовой ID и по нему потом определять нажатие. Спасибо за помощь.

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

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

Добавлено через 1 минуту
http://stackoverflow.com/quest... lumn-sizes
http://stackoverflow.com/quest... lumn-sizes
0
1 / 1 / 2
Регистрация: 22.04.2013
Сообщений: 132
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2013, 21:03
Помогаю со студенческими работами здесь

Значение строковой переменной в качестве имени класса
Добрый день. Прошу помочь с ответом на вопрос: Как должна выглядеть запись, чтобы содержание...

Вопрос об использовании текстовой переменной в качестве имени объекта.
Привет! Пытюсь реализовать использовании переменной в качестве имени объекта - неполучается -...

Определение кодового имени листа и дальнейшее его использование в качестве переменной
Здравствуйте, Уважаемые! Подскажите, плиз как можно правильно определить кодовое имя листа и в...

Почему нельзя использовать имя целочисленной переменной в качестве имени целочисленного массива?
помогите разобраться #include <iostream> using namespace std; int main () { int *array;...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru