OnClicklistener不适用于运行时视图

时间:2011-04-07 07:17:26

标签: android views onclick tablelayout tablerow

我在我的应用程序中显示一个在运行时创建的表。我想让它的所有行都可以点击。我在这里使用了代码。

            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 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

您可能没有为您创建的“运行时视图”添加侦听器。

yourView.setOnClickListener(this);