在android studio中点击一个按钮,删除一行tablelayout

时间:2015-09-22 10:03:13

标签: android onclicklistener tablelayout

我有一个这样的代码,只需点击一下按钮即可删除视图:

 onClick = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ((LinearLayout)v.getParent()).removeView(v);              
        }
 };

然后我使用此命令设置点击操作:

 button.setOnClickListener( onClick );

问题是我想在点击时删除一行TableLayout, 不是按钮。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

使用以下代码,

onClick = new View.OnClickListener() {
        @Override
        public void onClick(View v) {            
            View row = (View) v.getParent();            
            ViewGroup container = ((ViewGroup)row.getParent());
            container.removeView(row);
            container.invalidate();         
        }
    };

答案 1 :(得分:0)

你正朝着正确的方向前进,但还没有完全朝那个方向发展。   onClick(View v) 是一种在点击按钮时调用的方法,参数 v 是被点击的视图。在这种情况下,按钮。因此,在说 removeView(v); 时,您会说 "Remove the view that just got clicked"

您想要做的是以下内容:

  1. 找到您的TableRow视图。 (给它一个ID,并使用findViewByID(R.id.yourID)来查找它。)
  2. 获取该表行的父级(您已经通过执行((LinearLayout)v.getParent())已经为该按钮执行此操作,因此您可以对其进行调整并再次使用它)。
  3. 使用您在步骤1中找到的TableRow视图作为参数调用父项的removeView(View v)方法。
  4. 我建议您先尝试自己实施。如果你真的无法解决问题,只需发表评论,我就会添加一个代码示例。