В веб-разработке у нас есть что-то, называемое event delegation
- когда родительский элемент DOM получает все события своих дочерних элементов. В основном это делается по соображениям производительности. У Android есть что-то подобное? Например, у меня есть LinearLayout
и 100 детей TextView
s. Я не хочу добавлять 100 слушателей событий к каждому TextView
, но добавить только один из LinearLayout
и поймать в нем события?Можно ли уловить дочерние события на родительских представлениях в android
Например, вместо этого:
for (int i = 0; i < length; i++) {
TextView tv = new TextView(getApplicationContext());
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {}
});
layout.addView(tv);
}
сделать это:
for (int i = 0; i < length; i++) {
TextView tv = new TextView(getApplicationContext());
layout.addView(tv);
}
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// how to know here whether `v` is an instance of TextView or LinearLayout?
}
});
Вы хотите захватить события касания дочерних событий и передать их родительскому виду? –
Это часть задачи, которую я пытаюсь выполнить, и она описана в моем [этом вопросе] (http://stackoverflow.com/questions/30011839/multiple-text-views-or-one-text-view-with -clickable-spans) –
уже существует метод v instanceOf TextView, который вернет true или false. –