Обработка многих динамически созданных TextView

У меня есть следующий код:

for (int i = 0; i < dataStrings.length; i++) { TextView tv1 = new TextView(this); tv1.setTextSize(TEXT_SIZE); tv1.setTypeface(Typeface.MONOSPACE); tv1.setText(dataStrings[i]); dynamicLL.addView(tv1);
}

В основном, я создаю некоторое количество TextView динамически (сумма неизвестна). Я хочу, чтобы каждый TextView имел свой собственный OnLongClickListener. Мой вопрос заключается в том, как я могу предоставить каждому TextView свой собственный уникальный OnLongClickListener, когда TextViews сгенерированы таким образом и как обрабатывать клики после создания слушателя?

1 ответ

Вы можете просто установить их в цикле for, как это

OnLongClickListener longClickListener = new OnLongClickListener () { @Override public void onLongClick (View v) { switch (v.getId()) ... }
};
for (int i = 0; i < dataStrings.length; i++) { TextView tv1 = new TextView(this); tv1.setId(i * 1000); tv1.setOnLongClickListener(longClickListener);
}

В своем коммутаторе в прослушивателе вы можете проверить, что TextView был нажат, и выполнить действие.

licensed under cc by-sa 3.0 with attribution.