当前位置: 首页 > 知识库问答 >
问题:

如何在单击按钮时删除动态创建的视图

养昊天
2023-03-14
   public void Add_text() {


        ll.setOrientation(LinearLayout.HORIZONTAL);
        ll.setId(i);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        TextView product = new TextView(getActivity());
        product.setText(" Product" + 5 + "    ");
        ll.addView(product);

        EditText qty = new EditText(getActivity());
        qty.setText(i + "");
        qty.setId(i);
        qty.setWidth(120);

        ll.addView(qty);

        Button btn = new Button(getActivity());
        ll.addView(btn);
        btn.setLayoutParams(params);
        btn.setOnClickListener(o);

        ly.addView(ll);
        i++;

    }

我编写了上面的代码来动态创建文本字段和按钮;但现在我需要删除两个文本字段和一个按钮时,按钮被点击。我该怎么做?

共有3个答案

黄骏喆
2023-03-14

如果要永久删除创建的视图。

  OnClick(View view){
     ly.removeAllViews()
  }

如果不想永久删除所创建的视图。

 OnClick(View view){
     ly.setVisibility(View.GONE); //This will hide the all views
     qty.setVisibility(View.GONE);//This will hide the EditText qty 
     product .setVisibility(View.GONE);//This will hide the TextView product 
 }

所以,使用你想要的适当代码行。

编辑:

根据您的情况使用以下代码:

public void Add_text() {


    ll.setOrientation(LinearLayout.HORIZONTAL);
    ll.setId(i);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    TextView product = new TextView(getActivity());
    product.setText(" Product" + 5 + "    ");
    ll.addView(product);

    EditText qty = new EditText(getActivity());
    qty.setText(i + "");
    qty.setId(i);
    qty.setWidth(120);

    ll.addView(qty);

    Button btn = new Button(this);
    ll.addView(btn);
    btn.setLayoutParams(params);


    ly.addView(ll);
    i++;

    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View button) {
            qty.setVisibility(View.GONE);//This will hide the EditText qty 
             product .setVisibility(View.GONE);//This will hide the TextView product 

        }
    });

}
上官自明
2023-03-14

我认为你应该在你的线性布局中使用这种方法:

公共空删除视图(查看视图)

首先你打电话:

EditText et = (EditText)linearLayout.findViewById(yourEditText.getId()); 

然后调用remove view方法:

linearLayout.removeView (et) ; 

并删除LinearLayout中的所有视图,请执行以下操作:

public void removeallview()

像下面这样:

linearLayout.removeAllViews()

给我一些反馈

希望有帮助。

黄宏毅
2023-03-14

尝试以下代码。

button.setOnClickListener(new View.OnClickListener() {      
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        LinearLayout linearParent =  (LinearLayout) v.getParent().getParent();
        LinearLayout linearChild = (LinearLayout) v.getParent();
        linearParent.removeView(linearChild);   
    }
});

解释

  • 这里先来看看“祖父母”的观点
 类似资料:
  • 问题内容: 首先,我很抱歉如果这个答案已经在这里,因为我已经搜索了几个星期,还没有找到任何东西。 我正在开发一个Android应用,该应用需要允许用户创建和删除按钮。我知道如何通过将按钮添加到XML文件并在JAVA文件中创建其功能来正常静态地创建按钮。 相反,我有一个静态按钮,我将其称为“创建按钮”。当用户按下“创建按钮”时,应该给他们选择向当前活动添加新按钮的选项,允许他们更改该按钮的标题等。他

  • 在我的项目中,需求是创建一个回收器视图->卡片视图在活动a中,当信息被填满并在活动B中按下按钮时。

  • 我有一个按钮和一个文本框。当我在textbox中放置一个值并单击此按钮时,将创建一个新按钮,该值填充在textbox中,但我希望当我再次单击Button1时,应该还有一个按钮,或者我们可以说如何移动上一个按钮的位置? 请帮我解决这个问题。提前谢了。

  • 问题内容: 我正在尝试使用Apple的 SwiftUI 制作一个应用程序,我需要有两个按钮在同一行中显示两个不同的视图。 我使用 Xcode beta 7 和 MacOS Catalina beta 7 。我尝试添加一个表示视图的视图,但是无法单击它,而当我尝试在外部进行简单单击并单击该视图时,该视图没有出现。我也尝试过添加一个内部,但是它也不起作用。单击时也无法添加,视图仍然不会出现 我希望该视

  • 在React.js中,我在中有页面链接菜单和3个切换按钮。 单击时,所有切换按钮都有层。 我想做的是。。。 当单击切换按钮时,必须删除其他切换按钮和图层。类别 当单击页面链接菜单(menu1、menu2、menu3)时,所有切换按钮和层都必须被删除 我需要什么来更改代码? 这就是我目前为止所尝试的。 请帮忙。 演示:https://codesandbox.io/s/49io4 header.js

  • 我正在使用JavaFX构建一个calander/planner应用程序。该应用程序包括一个单一的GridPane与35(7x5)VBox的。在这些VBox中有任务按钮(在下面实现)。当我右键单击任务框时,它将把文本变成灰色,当我左键单击TsskButton时,我希望它删除按钮。我已经知道的事情。 AnchorPaneNode(扩展VBox)没有静态getChildren()方法 我无法为窗格创建单