TableLayout onClickListener:获取行/列

时间:2011-12-20 15:57:20

标签: java android tablelayout

我选择使用TableLayout来绘制产品类别。

动态获取和呈现数据。我正在将TableRow和ImageView添加到其中。

如果每个TableRow有3个项目,我该如何处理onClickListener

我无法更改已使用的布局,因此我正在寻找当前情况下的解决方案

2 个答案:

答案 0 :(得分:5)

好的,当你使用for循环创建动态行时: 这样做:

  1. 使用增量变量对表格行的每个子元素使用setTag()setTag(key, tag)

  2. setonclick for循环内部每个子元素的侦听器[注意:for循环中的 ]

  3. 在onclicklisteners的onclick(View v)中,您可以通过使用v.getTag() [将代码转换为所需数据类型]

  4. 检索点击的视图来检测单个点击次数

答案 1 :(得分:0)

你的膨胀布局必须在XML中看起来像这样:

<TableRow android:id="@+id/somerow">
    <TextView android:id="@+id/row_item1" android:duplicateParentState="true" .... />
    <TextView android:id="@+id/row1_item2" android:duplicateParentState="true" .... />
    <TextView android:id="@+id/row1_item3" android:duplicateParentState="true" .... />
</TableRow>

所以在java代码中,你应该在膨胀行之后直接做这样的事情:

// there is some var tableRow of type TableRow
TextView myTextView = new TextView(......);
myTextView.setOnClickListener(myOnClickListener); // this is the important part
myTableRow.addView(myTextView);