从ArrayList Java中删除元素

从ArrayList Java中删除元素,java,android,arraylist,Java,Android,Arraylist,我正在Android Studio中编写一个程序。如果SeekBar被更改,我希望存储用户提供的元素的ArrayList被删除,以便它们可以重新开始。当注释掉带有arraylist.remove()的代码块时,一切都很好。想知道为什么当我试图移动SeekBar时,这几行代码会使我的程序崩溃。这是我的密码。count和converter.langSize在其他地方都初始化为1 @Override public void onProgressChanged(SeekBar seekBar, int

我正在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);
        }
    }
}
@覆盖
public void onProgressChanged(SeekBar-SeekBar、int-progress、boolean-fromUser){
if(seekBar.getId()==R.id.langSizeeEkbar&&fromUser){

如果(count无法以这种方式从数组中删除条目,则需要使用迭代器

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));
    }
}

崩溃后,您的Logcat显示什么?它显示indexOutOfBounds异常