Обработка многих динамически созданных 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.