Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Frai32
0 / 2 / 1
Регистрация: 24.08.2013
Сообщений: 137
1

Появляется CursorIndexOutOfBoundsException

12.02.2015, 14:39. Просмотров 1218. Ответов 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


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

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

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

Не появляется изображение
Всем доброго времени суток. Ситуация следующая.. Делаю сайт. Cреда разработки: microsoft...

Появляется BSOD
Ребят такая фигня, нид хэлп, у моей ооочень хорошей подруги, вылазит BSOD !ВНЕЗАПНО! контакт не...

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

Не появляется квадрат
Здравствуйте! Подскажите, пожалуйста, почему у меня не появляется квадрат. Вот код: //...

3
Rube
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
12.02.2015, 14:58 2
А где cursor.moveToNext()?
И не весь код приведен.
0
Frai32
0 / 2 / 1
Регистрация: 24.08.2013
Сообщений: 137
12.02.2015, 16:06  [ТС] 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 минуты
У меня возник вопрос как сделать что бы после закрытия приложения поля в таблице БД обнулялись?
0
Rube
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
12.02.2015, 16:24 4
Цитата Сообщение от Frai32 Посмотреть сообщение
Я добавил метод cursor.moveToNext() и код начал компилироваться,оказывается он нужен.
Конечно нужен, курсор этож множество.
Цитата Сообщение от Frai32 Посмотреть сообщение
У меня возник вопрос как сделать что бы после закрытия приложения поля в таблице БД обнулялись?
Повесить на кнопку выхода db.execSQL("DROP TABLE IF EXISTS " + MY_TABLE);
0
12.02.2015, 16:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2015, 16:24

Не появляется компонент
Не появляется JPopupMenu: final JFrame JF = new JFrame(); JF.setLayout(new BorderLayout());...

Не появляется меню
В Joomla 2.5 в main menu создаю два подпункта меню. В файле templateDetails.xml добавляю:...

Появляется рамка
При вставке в правую часть сайта любого обьекта появляется рамка. По левой стороне сайта при...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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