首页 > 解决方案 > 如何删除存储在 ArrayList 中的某个视图点击一个按钮?

问题描述

所以我正在创建一个用户可以创建投票的活动。

我有:

1-动态添加的EditTexts

2-List<EditText> allEds = new ArrayList<>();包含所有 EditText 视图的A。

3-还动态附加ImageButtons '❌',作为附加在每个EditText上的删除工具

我只是想:

检测用户删除了哪个EditText 视图,以便将其从allEds List中同步删除。

换句话说,当用户单击附加到EditText的删除按钮时(除了删除我成功执行的两个视图)我想知道单击EditText的哪个删除按钮并从ArrayList中删除其整个

请帮帮我。

标签: javaandroidarraylistandroid-edittext

解决方案


您可以EditText通过 using 方法使用 tag 属性view.setTag(): 这样每对 Button &EdiText应该具有相同的标签。

然后有几个选项可以将其链接到列表:

第一:

将标记值设为等于EditText列表中索引的整数值: 并在按钮单击时直接将其删除:

button.setOnClickListener(v -> {
    int buttonTag = (int) v.getTag();
    allEds.remove(buttonTag);
});

第二个:

在第一个选项中处理索引可能很麻烦,因此您可以通过遍历列表来查找预期的标签:

button.setOnClickListener(v -> {
    String buttonTag = (String) v.getTag();

    for(EditText editText: allEds) {
        String edtitextTag = (String) editText.getTag();
        if (buttonTag.equals(edtitextTag)) {
            // remove EditText
            allEds.remove(editText);
            break;
        }
    }
});

推荐阅读