从 Android 中的 Java 列表中删除项目



我在使用以下代码时遇到问题。

我正在获取项目的索引并使用它。现在我想从列表中删除它的位置,这样它就不会再次获得相同的位置,但是当我调用下面的方法时,应用程序崩溃,当我删除该行时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);
  }

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

确保:

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

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

randomIndex = rand.nextInt(myList.size()-1);
if(randomIndex <= myList.size()-1){
 myList.remove(randomIndex)
};
应该是

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

最新更新