从Android中的Java List中删除项目

时间:2017-10-10 14:45:50

标签: java android list arraylist

我遇到以下代码时遇到问题。

我正在获取项目的索引并使用它。现在我想从列表中删除它的位置,以便它不会再次获得相同的位置,但是当我调用下面的方法时,应用程序崩溃,当我删除行myList.remove(randomIndex);时,它运行良好。 这条线有问题吗?

public void showtime() {

     Random rand = new Random();
     randomIndex = rand.nextInt(myList.size());

     randomName = myList.get(randomIndex);
     txtView.setText(randomName);

     if (randomIndex==1)) {
         imgLabel.setImageResource(R.drawable.Label1);
     }
     if (randomIndex==2)) {
         imgLabel.setImageResource(R.drawable.Label2);
     }
     if (randomIndex==3)) {
         imgLabel.setImageResource(R.drawable.Label3);
     }

     myList.remove(randomIndex);
  }

4 个答案:

答案 0 :(得分:0)

确保:

1- myList是一个ArrayList;

2-调用此方法时,myList几乎有一个元素

每个if语句都有语法错误。他们有一个额外的)

if (randomIndex==1) {
     imgLabel.setImageResource(R.drawable.Label1);
 }
 if (randomIndex==2) {
     imgLabel.setImageResource(R.drawable.Label2);
 }
 if (randomIndex==3) {
     imgLabel.setImageResource(R.drawable.Label3);
 }

答案 1 :(得分:0)

当你从列表中删除项目时,请确保它不应该是列表它必须是 ArrayList 请试试这个......

答案 2 :(得分:-1)

应该是

    randomIndex = rand.nextInt(myList.size());

答案 3 :(得分:-1)

您可以检查生成的索引是否在列表范围内,并避免像这样的

崩溃
randomIndex = rand.nextInt(myList.size()-1);

if(randomIndex <= myList.size()-1){
 myList.remove(randomIndex)
};