Intereting Posts
Как играть несколько сигналов тревоги с помощью уведомления? Сбросить градиент по умолчанию и плагин для студии Android для обновления при создании новых проектов? Невозможно установить обратный вызов при загрузке пользовательской временной шкалы с помощью набора Fabric Twitter Kit в приложении для Android Eclipse Android и gitignore BaseGameActivity и множественное наследование Подсказки SearchView не отображаются для одиночного символа Есть неустранимые ошибки, которые необходимо исправить сначала Дополнительное пространство между клавишей «Сводная панель инструментов» и кнопкой «Домой / Вверх» Ошибка HttpPost из-за «Невозможно повторить запрос с неповторяющимся объектом запроса» Обновление элемента RecyclerView + асинхронный сетевой вызов Тестирование устройств Android: как сделать класс более подверженным тестированию? Не удается запустить Android ServiceTestCase. Цвет текста действия с заставкой не меняется Пользовательское приложение не создано на Android M (окончательный просмотр) Recyclerview с внутренним вложенным scrollview?

OnClickListener в динамическом расположении таблицы

Я хочу добавить onClicklistener в элементы из создаваемой динамической таблицы. Мой код

for(int k=0;k<i;k++) { tr[k]=new TableRow(getApplicationContext()); tr[k].layout(0, 0, 0, 0); ids[k] = new TextView(getApplicationContext()); ids[k].setText(loc_id[k]); ids[k].setPadding(30, 15, 30, 15); loc[k] = new TextView(getApplicationContext()); loc[k].setText(loc_name[k]); loc[k].setPadding(30, 15, 30 ,15); tr[k].setPadding(0, 1, 0, 0); tr[k].addView(ids[k]); tr[k].addView(loc[k]); tl.addView(tr[k], new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); } 

Пожалуйста помоги.

Вам необходимо добавить интерфейс OnClickListner в свою деятельность, а затем добавить все динамические представления в setOnClickListner и, наконец, вы можете поймать событие click для всех видов внутри метода onClick (View view) .

Попробуй это

 public class MainScreen extends Activity implements OnClickListener { int i = 10; // input no of row @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // set here your layout xml name //TableLayout tl = new TableLayout(MainScreen.this); TableLayout tl = (TableLayout) findViewById(R.id.table); for (int k = 0; k < i; k++) { TableRow tr = new TableRow(MainScreen.this); tr.layout(0, 0, 0, 0); TextView ids = new TextView(MainScreen.this); ids.setText(loc_id[k]); ids.setPadding(30, 15, 30, 15); TextView loc = new TextView(MainScreen.this); loc.setText(loc_name[k]); loc.setPadding(30, 15, 30, 15); tr.setPadding(0, 1, 0, 0); tr.addView(ids); tr.addView(loc); tr.setId(k); // here you can set unique id to TableRow for // identification tr.setOnClickListener(MainScreen.this); // set TableRow onClickListner tl.addView(tr, new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); } //setContentView(tl); } @Override public void onClick(View v) { // TODO Auto-generated method stub int clicked_id = v.getId(); // here you get id for clicked TableRow // now you can get value like this String ids = loc_id[clicked_id]; String loc = loc_name[clicked_id]; } }