2014-01-19 6 views
0

Выход андроида logcat сообщает мне, что ArrayIndexOutOfBoundsException является thown в какой-то момент в моей программе:я получаю ArrayIndexOutOfBoundsException в моем коде

Я настроил логическое значение кнопки раньше, кнопка для в целях тестирования.

Это код, в котором считают, что ошибка находится:

int hour = new Date().getHours(); 
int min = new Date().getMinutes(); 
int secs = new Date().getSeconds(); 
String date = hour + ":" + min+ ":" + secs; 

b.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     bSet = true;  
    } 
}); 

while (date =="01:00:00" || bSet == true); 
int randomNumber = rand.nextInt(); 
tv.setText(getResources().getString(ids[randomNumber])); 
+0

Использование 'String.equals' для сравнения строк – Reimeus

+0

Используйте' Int randomNumber = рандов. nextInt (ids.length); ' –

ответ

1

Для изменения лучше практики

while (date =="01:00:00" || bSet == true); 

в

while (date.equals("01:00:00") || bSet) 

И изменить int randomNumber = rand.nextInt();

в int randomNumber = rand.nextInt(ids.length);

+0

Я думал. Длина была использована для поиска случайной длины, но у меня много строк, и я хотел бы выбрать случайную строку для отображения, должен ли я использовать .length? – user3165683

+0

простой ответ есть. –

+0

@ user3165683 УВЕРЕН ... –

2

Я думаю, что у вас есть исключение в последней строке. Именно здесь ids[randomNumber]

Вы должны проверить произвольное сгенерированное число, потому что оно может быть больше, чем ids.length. Использование rand.nextInt(ids.length); Будет генерировать случайное число от 0 до ids.length.

+2

_" Он будет генерировать случайное число от 0 до ids.length. "_ No. Fr om 0 до ids.length-1. –

Смежные вопросы