3

我在 for 循环中添加了TableRows两个TableLayout。在每个第一个TableRow都有 6TextViews和 1 ImageView& 1 切换按钮。我OnClickListenerfirst row& 切换按钮中添加了一个。我的问题是在onclick方法中First Row,我应该如何获取该特定选定行的行 ID?

有人能帮我吗?

请帮助我......

我想获取特定选定行的行 ID......

LZ有人回复我....

4

2 回答 2

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);不会向opensRow1 View添加标签(如果这是您想要做的),它只是将其定位到父级View中的特定位置(就像0是父级的第一个子级)。

我猜你是在点击它的父级时试图从第二个TextViewtv_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);
 }
于 2012-06-01T05:01:24.927 回答
1

我不确定您将如何获得正确的行号,但我建议改为使用getParent()方法View来获取对TableRow包含图像的引用并直接从中工作。像这样的东西:

imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        TableRow row = (TableRow)v.getParent();
        //handle your stuff here
    }
});
于 2012-06-01T05:04:14.593 回答