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

Интерфейс, диалоги, темы, стили, меню
Ответить
Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

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

Сообщение Night_Scream » 28 окт 2015, 19:38

Привет.
Есть на экране несколько компонентов - button, imageView и т.п.
и у всех событие, например такое

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

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

спасибо

besenok47@mail.ru
Сообщения: 6
Зарегистрирован: 27 июл 2015, 17:20

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

Сообщение besenok47@mail.ru » 28 окт 2015, 20:10

http://developer.android.com/reference/ ... etId%28%29

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

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

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

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

Сообщение Night_Scream » 28 окт 2015, 20:18

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 не получается использовать.

besenok47@mail.ru
Сообщения: 6
Зарегистрирован: 27 июл 2015, 17:20

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

Сообщение besenok47@mail.ru » 28 окт 2015, 20:32

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

Night_Scream
Сообщения: 54
Зарегистрирован: 23 сен 2013, 10:51

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

Сообщение Night_Scream » 29 окт 2015, 08:09

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

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

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

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


Ответить