动态获取行在 android table 布局中的位置

Dynamically get position of row in android table layout

我有一个 table 动态填充数据的布局 table 包含 4 列,3 列是文本视图,1 列是图像按钮

<TableLayout
    android:id="@+id/tablePicklist"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:stretchColumns="*">

    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="code"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="desc"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="barcode"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="action"/>

    </TableRow>

</TableLayout>

单击图像按钮后,我想获取 table 行的位置以访问行数据 我也不想为按钮设置 id,因为行将动态删除

我试图通过视图 ID 获取行 ID 但它 returns 1

ImageButton imgBtn = new ImageButton(context);
imgBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Log.e("table row", view.getId());
    }
});

同样通过尝试 table 行,returns -1

ImageButton imgBtn = new ImageButton(context);
imgBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        TableRow tr = (TableRow) view.getParent();
        Log.e("table row", tr.getId());
    }
});

我认为这与 table 布局有关但不确定

谢谢

想通了。

得到解决方案
ImageButton imgBtn = new ImageButton(context);
imgBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        TableRow tr = (TableRow) view.getParent();
        int index = tableLayout.indexOfChild(row);
    }
});