Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 17

Правильное закрытие курсора

08.01.2014, 22:08. Показов 1727. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как правильно закрыть Cursor?
Если делать так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
....
String []from = {"name","count"};
int[]to ={R.id.backpack_text_1, R.id.backpack_text_2};
Cursor AllData = databaseHelper.getData("coil");
ListAdapter adapter= new SimpleCursorAdapter(Backpack.this,R.layout.backpack_list_item,AllData,from,to);
myListView.setAdapter(adapter);
AllData.close();//!
....
....
public Cursor getData(String table_name){
Cursor cursor = getReadableDatabase().rawQuery("SELECT * FROM " + table_name, null);
return cursor;
}
,
То listview пуст.
А если убрать
[ JAVA]
AllData.close();
[/JAVA]
,то все работает но в логах Sqlite database ругается на не закрытые курсоры
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2014, 22:08
Ответы с готовыми решениями:

Правильное закрытие соединения с БД
Приветствую! Мужики, подскажите, как правильно? Так: if ($result->num_rows == 0){ $connect->close(); // Закрываем...

Правильное закрытие Excel
Вот так я открываю xls файл Excel.Application app = new Excel.Application(); ...

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

2
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
09.01.2014, 10:25
Цитата Сообщение от nepridumalnick Посмотреть сообщение
Sqlite database ругается на не закрытые курсоры
А в какой момент она ругаться начинает? Когда активити закрывается? А что если переместить код закрытия курсора в метод onDestroy ?
1
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 17
09.01.2014, 18:34  [ТС]
Дело в том, что это вкладки, вот весь код:
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
 package ua.alexandrshirokih.myfishing;
 
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import android.widget.TabHost;
import android.database.Cursor;
 
public class Backpack extends TabActivity
{DataBaseHelper databaseHelper;
    final String TABS_TAG_1="fishing_rods";
    final String TABS_TAG_2="coil";
    final String TABS_TAG_3="fishing_line";
    final String TABS_TAG_4="hooks";//крючки
    final String TABS_TAG_5="bait";//наживки
    int[] m_rods_param3 ={5000,7000,9000,12000,15000,20000,25000,29000,34000,55000,60000,64000,69000,73000};
    int[] m_coil_param3 ={5000,8000,12000,17000,22000,27000,35000,37000,43000,50000,55000,61000};
    int[] m_lesparam3 ={3000,6000,10000,17000,26000,35000,45000,50000,65000};
    /** Called when the activity is first created. */ 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.backpack_tab);
        databaseHelper = new DataBaseHelper(this);
        final TextView money_tv = (TextView) findViewById(R.id.lvMain);
        int money = databaseHelper.market_upd_r();
        money_tv.setText("денег: " + String.valueOf(money) + "$");
 
        TabHost tabHost = getTabHost();
        TabHost.TabSpec tabSpec;
        tabSpec = tabHost.newTabSpec(TABS_TAG_1);
        tabSpec.setIndicator("Спининги" , getResources().getDrawable(R.drawable.tab_icon_spining));
        tabSpec.setContent(TabFactory);
        tabHost.addTab(tabSpec);
 
        tabSpec = tabHost.newTabSpec(TABS_TAG_2);
        tabSpec.setIndicator("Катушки" , getResources().getDrawable(R.drawable.tab_icon_coil));
        tabSpec.setContent(TabFactory);
        tabHost.addTab(tabSpec);
 
 
        tabSpec = tabHost.newTabSpec(TABS_TAG_3);
        tabSpec.setIndicator("Лески" , getResources().getDrawable(R.drawable.tab_icon_leska));
        tabSpec.setContent(TabFactory);
        tabHost.addTab(tabSpec);
 
        tabSpec = tabHost.newTabSpec(TABS_TAG_4);
        tabSpec.setIndicator("Крючки" , getResources().getDrawable(R.drawable.tab_icon_kruchok));
        tabSpec.setContent(TabFactory);
        tabHost.addTab(tabSpec);
 
        tabSpec = tabHost.newTabSpec(TABS_TAG_5);
        tabSpec.setIndicator("Наживки" , getResources().getDrawable(R.drawable.tab_icon_nazhivka));
        tabSpec.setContent(TabFactory);
        tabHost.addTab(tabSpec);
    }
    TabHost.TabContentFactory TabFactory = new TabHost.TabContentFactory(){
        @Override
        public View createTabContent(String tag)
        {
            View view = getLayoutInflater().inflate(R.layout.backpack, null);
            String[] from = { "name", "kolvo" };
            int[] to = { R.id.rukzak_text_1, R.id.rukzak_text_2 };
            ListView myList=(ListView)view.findViewById(android.R.id.list);
            String column_name="";
            if (tag == TABS_TAG_1)
            {
                column_name = "fishing_rods";
            }
            if (tag == TABS_TAG_2)
            {
                column_name = "coil";
            }
            if (tag == TABS_TAG_3)
            {
                column_name = "fishing_line";
            }
            if (tag == TABS_TAG_4)
            {
                column_name = "hooks";
            }
            if (tag == TABS_TAG_5)
            {
                column_name = "bait";
            }
            Cursor AllData = databaseHelper.getData(column_name);
            ListAdapter adapter=new SimpleCursorAdapter(Backpack.this, R.layout.backpack_list_item, AllData, from, to);
            myList.setAdapter(adapter);
    //      AllData.close();
            return view;
        }
    };
}
Так случилось, что я пишу на планшете, и тестирую на нем, когда я скопировал код в эклипс, то в эмуляторе такие ошибки не появлялись.я так понимаю, что sqlite ругается, когда я переключаю вкладки.

Добавлено через 18 минут
Блин, как я мог так протупить??? действительно в onDestroy надо было соединение с базой данных закрывать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2014, 18:34
Помогаю со студенческими работами здесь

Правильное закрытие окна по ESC
Есть прекрасно работающий код, который я нашел где-то в дебрях инета. // Это надо прописать в обьявлениях. procedure...

Правильное закрытие страниц сайта
Интересует следующее. Стоит скрипт который все внешние ссылки реализовывает в вид http://www.sait1/go.php?redirect=http://sait2.ru/ ...

Не правильное местоположение курсора!
Создал класс Cursor: public class Cursor { public bool hover; public ContentManager Content; ...

Правильное закрытие от индексации Внешних ссылок
Правильное закрытие от индексации ВС, для этого мне ненужную ссылку на сайте оформлять так?

Правильное swprintf, правильное wprintf ?
Вродеж бы по ,,инструкции,,.... ..... wchar_t str = L"tanya"; // обозначает, что строка не однобайтная, а двуб ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru