Страница 1 из 1

Как узнать дочерний view класс вызвавщего событие.

Добавлено: 28 окт 2015, 19:38
Night_Scream
Привет.
Есть на экране несколько компонентов - button, imageView и т.п.
и у всех событие, например такое

Код: Выделить всё

View.OnClickListener temponClick = new View.OnClickListener() {//СОбытие для динамических кнопок
        @Override
        public void onClick(View v)
            //вызвавший v это button?
        }
    };
Если это button, то допустим изменить размер текста...
Как определить чей это view в OnClickListener ????

спасибо

Re: Как узнать дочерний view класс вызвавщего событие.

Добавлено: 28 окт 2015, 20:10
besenok47@mail.ru
http://developer.android.com/reference/ ... etId%28%29

Код: Выделить всё

if (v.getId() = R.id.btn) {
 doSomthing();
} else if (v.getId() = R.id.btn2) {
 hatePepoles();
}

Re: Как узнать дочерний view класс вызвавщего событие.

Добавлено: 28 окт 2015, 20:18
Night_Scream
besenok47@mail.ru писал(а):http://developer.android.com/reference/ ... etId%28%29

Код: Выделить всё

if (v.getId() = R.id.btn) {
 doSomthing();
} else if (v.getId() = R.id.btn2) {
 hatePepoles();
}
Да, забыл сказать что id нет, компоненты динамически созданы, могут удаляться\создаваться произвольно, id не получается использовать.

Re: Как узнать дочерний view класс вызвавщего событие.

Добавлено: 28 окт 2015, 20:32
besenok47@mail.ru
Если сдаются в вашем коде тогда http://developer.android.com/reference/ ... d%28int%29
дайте больше информации о том что именно вы хотите сделать:)

Re: Как узнать дочерний view класс вызвавщего событие.

Добавлено: 29 окт 2015, 08:09
Night_Scream
besenok47@mail.ru писал(а):Если сдаются в вашем коде тогда http://developer.android.com/reference/ ... d%28int%29
дайте больше информации о том что именно вы хотите сделать:)
Попробую подробнее ;)

В приложении пользователь в процессе работы динамически добавлять и удалять компоненты, произвольно, как ему захочется.
Компоненты это Button, CheckBox, Switch, ImageView...

При клике на любой компонент вызывается popupmenu, в него передается view.
Через popupmenu можно изменить текст компонента (если может иметь), так вот мне и надо знать что за класс вызвал и конкретно какой компонент. Тотесть вызвать у дочернего класса Button метод setText.
Я придумал только через setTag назначать цифру-идентификатор, но мне кажется это не правильно.

При создании компонентов храню их в SparseArray.

Re: Как узнать дочерний view класс вызвавщего событие.

Добавлено: 02 ноя 2015, 16:54
Night_Scream
Ребята UP