繁体   English   中英

TableLayout onClickListener:获取行/列

[英]TableLayout onClickListener : get Row/Column

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

数据是动态获取和呈现的。 我将TableRow和ImageView都添加到其中。

每个TableRow有3个项目时,如何处理onClickListener

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

确定,当您创建动态行时,使用for循环:执行以下操作:

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

  2. setonclick侦听器,用于for循环本身内的每个子元素[注意: for循环内 ]

  3. 在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM