Когда последняя строка удалена, это приводит к сбою приложения
Хорошо.. Вот моя проблема. У меня есть массив жала с 10 предметами в нем. Затем я рандомизирую список и отображаю случайную строку в текстовом виде. После удаления последней строки приложение вылетает. Любой совет, чтобы это исправить? Вот код:
Collections.shuffle(learnlist);
showlearntv.setText(learnlist.get(0));
nextlearn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showlearntv.setText(learnlist.get(1));
learnlist.remove(0);
2 ответа
В обработчике кликов сначала удалите элемент,
learnlist.remove(0)
Затем, если в списке есть какие-либо элементы,
showlearntv.setText(learnlist.get(0));
Остальное сделай что-нибудь еще.
Вы пытаетесь позвонить get(1)
в списке, который может содержать менее двух элементов. Вы должны добавить некоторые проверки безопасности. Например:
nextlearn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!learnlist.isEmpty()) {
learnlist.remove(0);
}
if (!learnlist.isEmpty()) {
showlearntv.setText(learnlist.get(0));
}
}