从视图中删除以编程方式添加的按钮

时间:2018-01-14 15:44:37

标签: android

我尝试删除所有以编程方式添加的按钮,但我遇到了一个小问题。

这是我的代码:

    #delete klas
@app.route('/delete_klas/<string:id>')
@is_logged_in
def delete_klas(id):
    if 'count' in session.keys():
        session['count'] += 1
    else:
        session['count'] = 1

    #create cursor
    cur = mysql.connection.cursor()

    #execute 
    cur.execute("DELETE FROM klassen WHERE id = %s", [id])

    #commit
    mysql.connection.commit()

    #close
    cur.close

    flash('klas verwijdert', 'success')

    return redirect(url_for('intranet'))

首先,我在我的数据库中搜索特定产品。我可以得到0,1,2,3 ...... n个元素。对于这些元素,我需要创建一个删除按钮。

我在循环中创建按钮并将它们添加到Button []表中。然后我设置了文本和ID,这些按钮显示在我的视图上。问题是当我想从我的视图中删除它们时。

搜索新产品会删除以前创建的按钮。但是,当我有一个产品,例如,两个元素,然后搜索具有一个元素的产品,从我的视图中只删除了一个按钮。

这是我的删除代码:

buttons = new Button[contacts.length()];
delete_button = new Button(getActivity());
delete_button.setText(String.valueOf(medicine_id));
delete_button.setId(medicine_id);
buttons[i] = delete_button;
layout.addView(delete_button);

https://i.stack.imgur.com/RldJJ.png

https://i.stack.imgur.com/fz3nN.png

https://i.stack.imgur.com/Vz2zA.png

正如您所看到的,在第三张图片上,我的视图中没有一个按钮被移除 - 编号为46的按钮。我应该更改什么?

编辑:我看到Button []&#34;按钮&#34;中的最后一个元素已移除。为什么不删除所有元素?

1 个答案:

答案 0 :(得分:2)

根据我的理解,我只是举个例子。您可以删除

之类的观点

Android从父级移除视图

View myView = findViewById(R.id.hiddenLayout);
ViewGroup parent = (ViewGroup) myView.getParent();
parent.removeView(myView);

Android删除所有子视图

LinearLayout formLayout = (LinearLayout)findViewById(R.id.formLayout);
formLayout.removeAllViews();