我在for循环中添加了两个TableRows
到TableLayout
。在每个TableRow
中,有TextViews
和1 ImageView
& 1切换按钮。我已将OnClickListener
添加到first row
&切换按钮。我的问题出在onclick
的{{1}}方法中,我该如何获取该特定选定行的行ID?
有人可以帮助我吗?
Plz帮助我......
我想获取特定选定行的行ID ......
Plz有人回复我......
答案 0 :(得分:4)
导航View
ImageView
中的OnCLickListener
层次结构,如下所示:
imageView.setOnClickListener(new OnClickListener() {
public void onCLick(View v) {
// v represents the view that was clicked(the ImageView)
// if the ImageView is added directly to the TableRow then you could simply do
TableRow tr = (TableRow) v.getParent(); // if the ImageView isn't a direct child of the TableRow then walk through all the parent with getParent().
// do stuff
}
});
修改:
你的代码没有帮助,通过查看你正在做的事情,我会建议你从一些更简单的东西开始学习android。此外,tabLayout.addView(openedRow1, n_D);
不会向 openedRow1 View
添加标记(如果这是您想要做的),它只是将View
定位到父级中的特定位置(如0
为父级的第一个子级)。
我猜你在点击它的父级时,试图从第二个TextView
( tv_vin_val ?!?!)获取文字。如果你想做的就是这样的话:
public void onClick(View v) {
// you set the listener on the TableRow so v is the TableRow that was clicked
TableRow lTableRow = ((TableRow) v);
// to get the TextView use getChildAt or findViewById
TextView lTextView = (TextView)lTableRow.getChildAt(1);
//get the text from the TextView
vinNum = lTextView.getText().toString();
// the tag
int theTag = (Integer) v.getTag();
Intent intent = new Intent(DeliveryInspectionActivity.this, ExceptionsActivity.class);
//intent.putExtra("row id value", theTag);
startActivityForResult(intent, 0);
}
答案 1 :(得分:1)
我不确定如何获得正确的行号,但我建议改为使用getParent()
的{{1}}方法来获取对{{1}的引用包含图像并直接从中工作。像这样:
View