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