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

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

Войти
Регистрация
Восстановить пароль
 
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
#1

Появляется CursorIndexOutOfBoundsException - Программирование Android

12.02.2015, 14:39. Просмотров 681. Ответов 3
Метки нет (Все метки)

Пытаюсь присвоить значение из таблицы таким способом:

Java
1
2
String sID = cursor.getString(indexOfID);
где indexOfID это indexOfID = cursor.getColumnIndex(DBExport.COLUMN_ID);
На что получаю исключение:

that are not also 02-12 21:24:00.599: E/AndroidRuntime(5686): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 5


Почему такое исключение появляться?

и как от него избавиться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2015, 14:39     Появляется CursorIndexOutOfBoundsException
Посмотрите здесь:

не появляется java файл - Программирование Android
Создаю java файл в папке проекта он есть а Eclipse его не показывает он 5 по счёту

AlertDialog появляется дважды - Программирование Android
При вызове приложения появляется AlertDialog. Когда закрываю его он появляется еще раз. Во второй раз он закрывается. В чем ошибка? ...

Не появляется приложение в genymotion - Программирование Android
Запускаю андроид-проект на эклипсе. Вроде все норм, лог пишет, что "Success! ... .apk installed on device. Done!" Но в виртуалке genymotion...

Виджет не появляется в списке виджетов - Программирование Android
Разбираю урок 117 проекта startandroid, делаю все как в уроке, но виджет не появляется в списке. Мне кажется, дело в том, что у меня в...

Виджет Android 4.1 не появляется в списке - Программирование Android
Добрый вечер, уважаемые форумчане. Учусь создавать приложения для андройда, добрался до виджетов. В уроке размещенном на сайте...

AppWidget: виджет не появляется на некоторых девайсах - Программирование Android
Здравствуйте. форумчане! Есть вопрос, связанный с нестабильным поведением приложения при создании инстанса AppWidget на рабочем столе. ...

На телефоне виджет не появляется в списке виджетов - Программирование Android
Добрый день! Сделал виджет - устанавливается и работает на планшете Asus Transformer Устанавливаю на телефон Fly IQ444 Quattro -...

При запуске приложения появляется клавиатура - Программирование Android
В приложении есть текстовое поле EditText в xml файле, а ниже находятся кнопки. При запуске приложения почему-то курсор сразу ставится в...

Eclipse. Не появляется иконка при инсталляции apk - Программирование Android
Создаю новый проект в Эклипсе. Всё оставляю по умолчанию. Код вообще не трогаю нигде. Сохраняю файл apk Инсталирую его на андроид. ...

APP не появляется в экране приложений но есть в Настройки/Приложения - Программирование Android
Пробую на реальном телефоне подписанный, неподписанный, релиз, дебаг, неподписанный дебаг/ релиз все равно не появляется. ...

Не появляется окно, но появляется процесс - Софт
Добрый день. Помогите, пожалуйста, запустить программу. Моей маме на работе нужна программа Декларация природопользования. Она ее...

Не появляется блок - PHP
вот код <?php error_reporting(E_NONE); //Setting this to E_ALL showed that that cause of not redirecting were few blank lines added in...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
12.02.2015, 14:58     Появляется CursorIndexOutOfBoundsException #2
А где cursor.moveToNext()?
И не весь код приведен.
Frai32
0 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 137
12.02.2015, 16:06  [ТС]     Появляется CursorIndexOutOfBoundsException #3
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
156
157
package com.example.tacticalgenirator;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
 
import android.database.Cursor;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
 
public class MainActivity extends ActionBarActivity implements OnClickListener {
 
    TextView tvObjective,
             tvDiscription;
     Button btGenirate;
     ListView lvObjective;
     Random random;
    SimpleCursorAdapter scAdapter;
    DBExport dbe;
    DB  db;
    String[] from;  
    int[] to;
    int indexOfID=0;
    Cursor cursor, cursor1;
    List<Integer> ObjectivList = new ArrayList<Integer>();
    String sID;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        
        tvObjective = (TextView) findViewById(R.id.tvObjectiv);
        tvDiscription =(TextView) findViewById(R.id.tvDescription);
        btGenirate = (Button) findViewById(R.id.btGenirate);
        lvObjective = (ListView) findViewById(R.id.lvObjectiv);
        
        ObjectivList.add(0);
        
        random = new Random();
        dbe = new DBExport(this);
        dbe.open();
        dbe.Check();
        dbe.OpenDATABASE();
        
        db = new DB(this);
        db.open();
        
        cursor = dbe.getAllData();
        cursor1 = db.getAllData();
        startManagingCursor(cursor);
        startManagingCursor(cursor1);
        indexOfID = cursor.getColumnIndex(DBExport.COLUMN_ID);
        crRightListView();
        
        btGenirate.setOnClickListener(this);
        
        
        //      if (savedInstanceState == null) {
//          getSupportFragmentManager().beginTransaction()
//                  .add(R.id.container, new fragView()).commit();
//      }
    }
    
    private void crRightListView()
      {
              String[] from1 = new String[] { DB.COLUMN_TID, DB.COLUMN_NAME};
              int[] to1 = new int[] {R.id.tvTID, R.id.tvName };
              scAdapter = new SimpleCursorAdapter(this, R.layout.bd_item, cursor1, from1, to1);
              lvObjective.setAdapter(scAdapter);
              
            
       }
    
    private void GenirateObjective()
    {
         db.addRec(cursor.getInt(cursor.getColumnIndex(DBExport.COLUMN_ID)), 
                   cursor.getString(cursor.getColumnIndex(DBExport.COLUMN_NAME)), 
                   cursor.getString(cursor.getColumnIndex(DBExport.COLUMN_DS)),
                   cursor.getInt(cursor.getColumnIndex(DBExport.COLUMN_TID)));
                 // cursor.getInt(nameColIndexCO));
         
            cursor.requery();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
 
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
    public void onClick(View v) {
        switch (v.getId()) 
        {
            case R.id.btGenirate:
                int Res = random.nextInt(6+1);
                 sID = cursor.getString(indexOfID);
//              String sName = cursor.getString(cursor.getColumnIndex(DBExport.COLUMN_NAME));
//              String sDiscription = cursor.getString(cursor.getColumnIndex(DBExport.COLUMN_DS));
//              for(int i = 0; i<ObjectivList.size(); i++)
//              {
//                if ( ObjectivList.contains(Res))
//                {
//                    break;
//                    
//                }
//                else
//                    ObjectivList.add(Res);
//                    if(Res == cursor.getInt(cursor.getColumnIndex(DBExport.COLUMN_ID)))
//                    {
//                      GenirateObjective();
//                      tvObjective.setText(sID +" : "+sName);
//                      tvDiscription.setText(sDiscription);
//                      break;
//                    }
//                
//                    
//              }
//              
//              for(int i = 0; i<ObjectivList.size(); i++)
//              {
//                Log.d("tag",""+ObjectivList.get(i));
//                    
//              }
                
            break;
            default:
            break;
        }
    }
    
 
}
Вот весь код. И что за метод cursor.moveToNext()?

Добавлено через 25 минут
Я добавил метод cursor.moveToNext() и код начал компилироваться,оказывается он нужен.

Добавлено через 33 минуты
У меня возник вопрос как сделать что бы после закрытия приложения поля в таблице БД обнулялись?
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
12.02.2015, 16:24     Появляется CursorIndexOutOfBoundsException #4
Цитата Сообщение от Frai32 Посмотреть сообщение
Я добавил метод cursor.moveToNext() и код начал компилироваться,оказывается он нужен.
Конечно нужен, курсор этож множество.
Цитата Сообщение от Frai32 Посмотреть сообщение
У меня возник вопрос как сделать что бы после закрытия приложения поля в таблице БД обнулялись?
Повесить на кнопку выхода db.execSQL("DROP TABLE IF EXISTS " + MY_TABLE);
Yandex
Объявления
12.02.2015, 16:24     Появляется CursorIndexOutOfBoundsException
Ответ Создать тему
Опции темы

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