OnClicklistener не работает для представлений во время выполнения - PullRequest
1 голос
/ 07 апреля 2011

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

            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");
            }
            }

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

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

делает строку таблицы кликабельной и присоединяет прослушиватель 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 голосов
/ 07 апреля 2011

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

yourView.setOnClickListener(this);  
...