[英]Removing elements from an ArrayList Java
我正在Android Studio中编写程序。 如果SeekBar发生更改,我希望删除存储了用户给出的元素的ArrayList,以便它们可以重新开始。 当注释掉带有arraylist.remove()的代码块时,一切工作都很好。 想知道为什么当我尝试移动SeekBar时,这些几行代码会使我的程序崩溃。 这是我的代码。 在其他地方,count和converter.langSize都初始化为1。
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (seekBar.getId() == R.id.langSizeSeekBar && fromUser) {
if (count <= converter.langSize) {
countTextView.setText("" + (progress + 1));
for (int i = 0; i < converter.langSize; i++) {
if (converter.language.get(i) != null) {
converter.language.remove(converter.language.get(i));
}
}
converter.langSize = (progress + 1);
langMessage.setText("Please enter element #1 of the language: ");
}
else {
seekBar.setClickable(false);
}
}
}
您不能以这种方式从数组中删除条目,而需要使用Iterator。
Iterator itr = converter.language.iterator();
while (itr.hasNext()) {
String value = itr.next();
if (condition) {
itr.remove();
}
}
减少而不是增加,它应该起作用
for (int i = converter.langSize - 1; i >= 0; i--) {
if (converter.language.get(i) != null) {
converter.language.remove(converter.language.get(i));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.