[英]TableLayout onClickListener : get Row/Column
我选择使用TableLayout绘制产品类别。
数据是动态获取和呈现的。 我将TableRow和ImageView都添加到其中。
每个TableRow有3个项目时,如何处理onClickListener
?
我无法更改使用的布局,因此我正在寻找当前情况下的解决方案
确定,当您创建动态行时,使用for循环:执行以下操作:
使用增量变量对表行的每个子元素使用setTag()
或setTag(key, tag)
setonclick侦听器,用于for循环本身内的每个子元素[注意: for循环内 ]
在onclicklisteners的onclick(View v)
中,您可以通过使用v.getTag()
[将标记转换为所需的数据类型]来检索单击的视图来检测单个单击。
膨胀后的布局在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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.