Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
#1

ArrayIndexOutOfBoundsException - Программирование Android

22.05.2013, 17:08. Просмотров 942. Ответов 6
Метки нет (Все метки)

Есть лог. Понимаю, что ошибка в строке 31, но там скобка. В чём ошибка?
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ex/com.ex.Activity}: java.lang.ArrayIndexOutOfBoundsException: length=5; index=-1
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2073)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2098)
at android.app.ActivityThread.access$600(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4905)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=5; index=-1
at com.findwc.Activity.onCreate(Activity.java:31)
at android.app.Activity.performCreate(Activity.java:5236)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2037)
... 11 more
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        addPreferencesFromResource(R.xml.settings);
        
        prefList = (ListPreference) findPreference("pref");    
            prefList.setDefaultValue(prefList.getEntryValues()[2]);
            String ss = prefList.getValue();
            if (ss == null) {
                prefList.setValue((String)prefList.getEntryValues()[2]);
                ss = prefList.getValue();
            }                         // это 31 строка                      
            prefList.setSummary(prefList.getEntries()[prefList.findIndexOfValue(ss)]);
            prefList.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference, Object newValue) {
                    prefList.setSummary(prefList.getEntries()[prefList.findIndexOfValue(newValue.toString())]);
                    return true;
                }
 
                
            }); 
  }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 17:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ArrayIndexOutOfBoundsException (Программирование Android):

Ошибка ArrayIndexOutOfBoundsException - Программирование Android
Доброго времени суток. Просьба помочь начинающему программисту разобраться с проблемой: Ошибка ArrayIndexOutOfBoundsException length=8...

Ошибка при запуске проекта ArrayIndexOutOfBoundsException - Программирование Android
Доброго времени суток. Понимаю, что обращаюсь с данной проблемой во второ Добавлено через 15 минут Удалите тему, пожалуйста.

ArrayIndexOutOfBoundsException - Java SE
Вот задача: http://codeforces.ru/problemset/problem/158/A Вот её решение: import java.util.*; public class Task4 { ...

ArrayIndexOutOfBoundsException - Java SE
ребят, подскажите пожалуйста почему выдаёт ошибку java.lang.ArrayIndexOutOfBoundsException: 0 в 25 и 42 строке. задание ввести с...

ArrayIndexOutOfBoundsException - Java SE
package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import...

ArrayIndexOutOfBoundsException постоянно - Java SE
package picparcer; import java.io.*; import java.net.*; public class PicParcer { public String getHTML(String...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
22.05.2013, 17:14 #2
Цитата Сообщение от Digetix Посмотреть сообщение
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=5; index=-1
в одном из подобных
Java
1
prefList.getEntries()[prefList.findIndexOfValue(ss)]
не находится элемент, поэтому возвращается индекс -1, и естественно по данному индексу нельзя обратиться к элементу массива
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
22.05.2013, 17:29  [ТС] #3
Цитата Сообщение от dr_yand Посмотреть сообщение
не находится элемент, поэтому возвращается индекс -1, и естественно по данному индексу нельзя обратиться к элементу массива
А почему так происходит?
0
dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
22.05.2013, 17:36 #4
чтобы понять нужно смотреть что содежится в prefList и что передаете в findIndexOfValue
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
22.05.2013, 17:44  [ТС] #5
Цитата Сообщение от dr_yand Посмотреть сообщение
чтобы понять нужно смотреть что содежится в prefList и что передаете в findIndexOfValue
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    <string-array name="rad">
            <item>50 m</item>
            <item>5 km</item>
            <item>10 km</item>
            <item>15 km</item>
            <item>20 km</item>
            <item>25 km</item>
            <item>50 km</item>
            <item>100 km</item>
            <item>Show all</item>
    </string-array>
    <string-array name="radValues">
            <item>0.05</item>
            <item>5</item>
            <item>10</item>
            <item>15</item>
            <item>20</item>
            <item>25</item>
            <item>50</item>
            <item>100</item>
            <item>999999999</item>
    </string-array>
0
dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
22.05.2013, 17:52 #6
на самом деле я рекомендовал бы пройтись по этому участку кода дебагером.
и за один проход вы увидите из-за каких значений выпадает программа
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
22.05.2013, 22:22  [ТС] #7
Цитата Сообщение от dr_yand Посмотреть сообщение
на самом деле я рекомендовал бы пройтись по этому участку кода дебагером.
А можете подсказать как это сделать?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 22:22
Привет! Вот еще темы с ответами:

Массивы. ArrayIndexOutOfBoundsException - Java SE
Немогу понять в чем проблема public class Min { public static void main(String args) { int a = 10; int b = 10; ...

Ошибка - ArrayIndexOutOfBoundsException - Java SE
всем привет) собственно, в чём проблема. имеется программа, написанная в среде NetBeans. при запуске в среде она работает как надо...

Ошибка в задании. ArrayIndexOutOfBoundsException - Java SE
Дали задание по джаве на дом, переписал код программы в NetBeans из методички, но при запуске вылезает ошибка: &quot;Exception in thread...

Java.lang.ArrayIndexOutOfBoundsException: 0 - Java
Вот так всё работает, когда задаёшь вручную размер. import java.util.Scanner; import java.io.*; public class Main { public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.05.2013, 22:22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru