在 android studio 中单击按钮即可删除一行表格布局

remove a row of a tablelayout at a click of a button in android studio

我有这样的代码,可以通过单击按钮删除视图:

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

然后我使用这个命令来设置点击时的动作:

 button.setOnClickListener( onClick );

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

使用下面的代码,

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();         
        }
    };

您正在寻找正确的方向,但还不完全正确。 onClick(View v)是点击按钮时调用的方法,参数v 是被点击的视图。在这种情况下,按钮。所以,当说 removeView(v); 时,你说的是 "Remove the view that just got clicked"

您要做的是:

  1. 找到您的 TableRow 视图。 (给它一个 ID,然后使用 findViewByID(R.id.yourID) 找到它。)
  2. 获取 table 行的父项(您已经通过执行 ((LinearLayout)v.getParent()) 为按钮执行此操作,因此您可以调整它并再次使用它)
  3. 调用父级的 removeView(View v) 方法,将您在步骤 1 中找到的 TableRow 视图作为参数。

我建议您先尝试自己实施。实在想不通的话可以留言,我会补上代码示例