OnClicklistener не работает для представлений во время выполнения

1

Я показываю таблицу в своем приложении, которая создается во время выполнения. Я хочу сделать все его строки доступными для кликов. Здесь я использовал код.

            tableRow.addView(payeeNameText);
            tableRow.addView(dueDateButton);
            tableRow.setTag(1);
            accountBillsTL.addView(tableRow);

            public void onClick(View v) {
            // TODO Auto-generated method stub
            if(v == (View)tableRow.getTag(1)){
               System.out.println("Row Clicked");
            }
            }

но при нажатии на строку ничего не происходит. no value не печатается в LogCat. Пожалуйста помоги. Как сделать строки доступными для просмотра во время выполнения. спасибо.

Теги:
onclick
views
tablelayout
tablerow

2 ответа

2
Лучший ответ

сделайте свою строку таблицы нажатой и добавьте прослушиватель onClick

tableRow.setClickable(true)
tableRow.setOnClickListener(new View.OnClickListener(){
 public void onClick(View view){
   System.out.println("Row Clicked with tag " + view.getTag()); 
 }
})

Внимание: view.getTag() не имеет аргументов! это возвращает только объект. Вы добавили целое число в качестве тега для этого представления, чтобы вы могли сделать что-то вроде этого

if (((int) tableRow.getTag()) == 1) {
 bla bla
}
  • 0
    (tableRow [2] .getTag () == 1) // сработало для меня спасибо
0

Вероятно, вы не добавили слушателя для созданного вами представления времени выполнения.

yourView.setOnClickListener(this);  
  • 0
    я добавил tableRow.setOnClickListener (это);
  • 0
    Вы действительно должны добавить еще немного кода. не могу ничего сделать из того, что доступно.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню