java - 如何删除存储在 ArrayList 中的某个视图点击一个按钮?
问题描述
所以我正在创建一个用户可以创建投票的活动。
我有:
1-动态添加的EditTexts
2-List<EditText> allEds = new ArrayList<>();
包含所有 EditText 视图的A。
3-还动态附加ImageButtons '❌',作为附加在每个EditText上的删除工具。
我只是想:
检测用户删除了哪个EditText 视图,以便将其从allEds List中同步删除。
换句话说,当用户单击附加到EditText的删除按钮时(除了删除我成功执行的两个视图)我想知道单击EditText的哪个删除按钮并从ArrayList中删除其整个值。
请帮帮我。
解决方案
您可以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;
}
}
});
推荐阅读
- c# - 在 C# 中通过 TCP 套接字方法发送位类型数据
- java - AES 解密期间出错。非法块大小异常
- android - 关闭警报对话框
- wordpress - 复杂重定向的组合或重写规则
- usb - Windows 7 虚拟机无法识别具有最新 Virtualbox 扩展的 USB 密钥和该密钥的过滤器
- android - 问题在 Honor 6x 中不可见项目(带有 StaggeredGridLayoutManager 的 Recyclerview)
- android - Google Apps 脚本:将数据附加到电子表格(如果尚未存在)
- python - 井字游戏python的GUI逻辑
- python - 使用 GPU Nvidia 的张量流
- django - Django - 从用户名获取用户 ID