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