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

Ошибка ArrayIndexOutOfBoundsException - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Кривые в OpenGL SE 1.0 http://www.cyberforum.ru/android-dev/thread1238928.html
Помогите, пожалуйста, мне очень нужна ваша помощь. Как в Android с помощью OpenGL ES 1.0 сделать движение картинки по траектории, являющейся кривой? Как создать кривую не средствами Canvas, а именно OpenGL? Прошу подробного ответа и искренне надеюсь на вашу помощь.
Android Не могу изменить высотку и ширину Image программно На экране есть компонент ImageView, в него загружается картинка из drawable(R.drawable.image_1). Как изменить width и height этой картинки? По аналогии с кнопкой не работает button_1.setWidth(100); http://www.cyberforum.ru/android-dev/thread1238842.html
Парсинг изображения с сайта Android
Здравствуйте. По практике в универе, нужно написать клиент под сайт. Я выбрал сайт, на котором 90% контента - картинки. Я только учусь кодить под андроид, поэтому "дуб-дубом" :) Пробую с помощью библиотеки jsoup. Но вот с парсингом изображений через эту библиотеку возникли проблемы... не могу найти ничего путного на эту тему. Подскажите пожалуйста, как это сделать? Или хотя бы в какую...
Обработчик нажатия в ExpandableListView Android
Есть ExpandableListView сделанный по примеру... Т.е. есть разворачиваемый список второго уровня, как повесить обработчик нажатия для каждого элемента списка "child", чтобы например запустить активность с описанием? Например нажимаю на "Декабрь" и появляется описание... Вот код public class TestActivity extends Activity { String groups = new String { "Зима", "Весна", "Лето", "Осень" };...
Android С чего начать разработку приложений http://www.cyberforum.ru/android-dev/thread1238499.html
Раньше не разрабатывал под Android. Хочу сделать не сложное переложения но не знаю с чего начать и что почитать конкретно то что мне надо (не представляю как это правильно прогуглить). Суть: Переложения будет как стена на которой могут оставить запись любой (соответственно оно должно работать через интернет). Там будет кнопка добавить запись после нажатия вылазит окно где пользователь...
Android Очень тормозит эмулятор в эклипсе Привет Друзья! Начал изучать Андроид, пока на стадии настройки среды выполнения. Проблема: -скачал эклипс специально для разработки под андроид со встроенным эмулятором, выделил памяти 1 Гб, поставил галочку Host CPU, но он очень тормозит - слайдшоу. До такой степени что приложения из примеров отказываются запускаться. Скромная машинка: і3 2х2.3GHz, оперативки 4Гб. Видяха 2Гб. Как... подробнее

Показать сообщение отдельно
Belle7
0 / 0 / 0
Регистрация: 06.08.2014
Сообщений: 5

Ошибка ArrayIndexOutOfBoundsException - Android

06.08.2014, 02:18. Просмотров 804. Ответов 10
Метки (Все метки)

Доброго времени суток.

Просьба помочь начинающему программисту разобраться с проблемой: Ошибка ArrayIndexOutOfBoundsException length=8 index=-2
Код прилагаю. Большая просьба подсказать в каком именно месте проблема.
Использую массив в ресурсах.

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package com.example.ouatquiz;
 
import android.app.Activity;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.Toast;
 
public class QuizActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    private AbsoluteLayout Abs;
    private Button Question;
    private Button[] Answers=new Button[4];
    private double width;
    private double height;
    private static final int QUESTIONS=8;
    private static final int VARIANTS=4;
    private static final char DELIMITER='/';
    private String[][] AnsMatrix=new String[VARIANTS][QUESTIONS];
    private int[] RightAnswers=new int[QUESTIONS];
    private String[] Ques=new String[QUESTIONS];
    private TypedArray Base;
    private int time=0;
    private int total_time=3;
    private int right=0;
    private int wrong=0;
    private int current_right=0;
    private AbsoluteLayout.LayoutParams[] params=new AbsoluteLayout.LayoutParams[VARIANTS+1];
    @Override
    public void onCreate(Bundle savedInstanceState) {
        try{
           super.onCreate(savedInstanceState);
           Abs=new AbsoluteLayout(this);
           setContentView(Abs);
           Display display = getWindowManager().getDefaultDisplay(); 
           width=display.getWidth();
           height=display.getHeight();
           Question= new Button(this);
           params[0]=new AbsoluteLayout.LayoutParams(
                 (int)width,(int)height/4,0,0
           );
           Question.setLayoutParams(params[0]);
           Abs.addView(Question);
           Question.setOnClickListener(this);
           //
           for (int i=1;i<VARIANTS+1;i++){
              int k=i%2;
              int m;
              if (i<3) m=1;
              else{
                  m=2;
              }
              Answers[i-1]= new Button(this);
              params[i]=new AbsoluteLayout.LayoutParams(
                    (int)width/2,(int)height/4,(int)(k*width/2),(int)(m*height/4)
              );
              Answers[i-1].setLayoutParams(params[i]);
              Abs.addView(Answers[i-1]);
              Answers[i-1].setOnClickListener(this);
           }
           //getSubstringBetweenDelimiters(2,3,"/Question1/Variant11/Variant12/Variant13/Variant14/Answer1/");
           //Toast.makeText(this, getSubstringBetweenDelimiters(5,6,"/Question1/Variant11/Variant12/Variant13/Variant14/Answer1/"), Toast.LENGTH_LONG).show();
           LoadQuestions();
           LoadQuestion();
        }
        catch(Exception e){
            Toast.makeText(this, e+"", Toast.LENGTH_LONG).show();
        }
    }
    
   private void LoadQuestion() {
         int qs=(int)System.currentTimeMillis()%QUESTIONS;
         Question.setText(Ques[qs]);
         for (int i=0;i<VARIANTS;i++){
            Answers[i].setText(AnsMatrix[i][qs]);
         }
         current_right=RightAnswers[qs]-1;
   }
    
   private void LoadQuestions(){
        Resources res=getResources();
        Base=res.obtainTypedArray(R.array.Questions);
        for (int i=0;i<QUESTIONS;i++){
            Ques[i]=getSubstringBetweenDelimiters(0,1,Base.getString(i));
            for (int j=0;j<VARIANTS;j++){
                AnsMatrix[j][i]=getSubstringBetweenDelimiters(j+1,j+2,Base.getString(i));
            }
            RightAnswers[i]=Integer.parseInt(getSubstringBetweenDelimiters(VARIANTS+1,VARIANTS+2,Base.getString(i)));
        }
    }
   
    private String getSubstringBetweenDelimiters(int k, int m, String str){
        int index1=0;
        int index2=0;
        int len=str.length();
        int dels=0;
        for (int i=0;i<len;i++){
            if (str.charAt(i)==DELIMITER){
                dels++;
            }
            if (dels==k){
                index1=i;
            }
            if (dels==m){
                index2=i;
            }
        }
        //Toast.makeText(this, index1+" "+index2, Toast.LENGTH_LONG).show();
        return str.substring(index1+2, index2+1);
    }
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        if (arg0==Question){
            wrong++;
        }
        else{
            wrong++;
            for (int i=0;i<VARIANTS;i++){
                if (arg0==Answers[i]){
                    if (current_right==i){
                        wrong--;
                        right++;
                    }
                }
            }
        }
        time++;
        LoadQuestion();
        if (time==total_time){
            Stats();
            time=0;
            right=0;
            wrong=0;
        }
    }
    
    private void Stats() {
        // TODO Auto-generated method stub
        double rating=Math.round(((double)right/((double)right+(double)wrong))*100);
        String stat="";
        stat+=getString(R.string.note1);
        stat+=" "+right+" ";
        stat+=getString(R.string.note2);
        stat+=" "+total_time+". ";
        stat+=getString(R.string.note3);
        stat+=" "+(rating+"").substring(0,(rating+"").length()-2);
        Toast.makeText(this, stat, Toast.LENGTH_LONG).show();
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru