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

Ошибка "attempt to re-open an already-closed object: sqlitequery:" - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android ScrollView http://www.cyberforum.ru/android-dev/thread1744713.html
Привет) Работаю со ScrollView у меня есть например 5 изображений, грубо говоря каждое отвечает за свой функционал, как при прокрутке мне получить индекс что я именно на этом изображение? То есть есть у меня например картинка машины, и когда я в скролле остановлюсь на машине и тыкну на кнопку, он выведет мне список машин. Работаю в Andriod Studio.
Android Нет никаких результатов работы программы Всем привет. Столкнулся с непонятной для меня проблемой, для вас она, возможно, окажется элементарной. Имеется приложение на андроид студио. При создании выбрана активити "tabbed activity". Соответственно имеется 3 вкладки, к каждой привязан свой лаяут, созданный с помощью бланка, так что, соответственно, каждый лаяут имеет свой класс. Но когда я пытаюсь что-либо реализовать на любой из вкладок... http://www.cyberforum.ru/android-dev/thread1744673.html
При попытке открыть второй и третий Activity происходит завершение работы программы Android
Подскажите где ошибка. В программирование андроида пару дней. При попытке открыть второй и третий Activity происходит завершение работы программы. Activity_main <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" ...
Android Модель передачи не отправленных сообщений из сервиса
Пишу чат небольшой и все действия передача/прием в сервисе в отдельном потоке находятся, мне нужна адекватная модель передачи не отправленных сообщений, я тут прикинул пару вариантов: 1) Первое о чем я подумал о BroadcastReciever, при старте загружаем в кеш, который находится в наследнике Application класса,из БД не отправленные сообщения и поштучно отправляем в сервис, а после передачи...
Android GetContentResolver() внутри service http://www.cyberforum.ru/android-dev/thread1744615.html
При вызове этого метода из контекста service и application контекста обьект ContentResolver не выдает смс по запросу. Как решить данную проблему? Где взять нужный контекст?
Android Закрытие Snackbar Как сделать чтобы при первом нажатии на FloatingActionButton, Snackbar открывался, а при втором закрывался, а также при нажатии вне области Snackbar. Snackbar snackbar; FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ... подробнее

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

Ошибка "attempt to re-open an already-closed object: sqlitequery:" - Android

25.05.2016, 08:39. Просмотров 79. Ответов 0
Метки (Все метки)

Доброе утро!

Реализую подсказки для SearchView. Курсор для подсказки заполняется в след. методе MainActivity:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Override
public boolean onQueryTextChange(String newText) {
 
        if(newText.length() >= 3) {
 
            Uri suggestionsUri = PharmacyContract.SUGGESTION_URI;
            Cursor cursor = getContentResolver().query(suggestionsUri,
                        PharmacyContract.CatalogEntry.CATALOG_COLUMNS,
                        null,
                        new String[]{newText},
                        null); // где-то здесь вылетает ошибка
 
            mSearchAdapter.changeCursor(cursor);
        }
        else
            mSearchAdapter.changeCursor(null);
 
        return true;
    }
Соответствующий метод ContentProvider:

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
@Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
 
        Cursor cursor;
        switch (mUriMatcher.match(uri)) {
 
            case CATALOG:
                cursor = mDBHelper.getReadableDatabase().query(
                        PharmacyContract.CatalogEntry.TABLE_NAME,
                        projection,
                        selection,
                        selectionArgs,
                        null,
                        null,
                        sortOrder);
                break;
 
            case CATALOG_SUGGESTIONS:
                cursor = getSuggestions(selectionArgs);
                break;
 
            default:
                throw new UnsupportedOperationException("Unknown uri: " + uri);
        }
 
        return cursor;
    }
 
private Cursor getSuggestions(String[] selectionArgs) {
 
        String selection = PharmacyContract.CatalogEntry.COLUMN_SEARCH_STR + " LIKE ? ";
 
        if(selectionArgs != null) {
            selectionArgs[0] = "%" + selectionArgs[0] + "%";
        }
 
        SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
        queryBuilder.setTables(PharmacyContract.CatalogEntry.TABLE_NAME);
        queryBuilder.setProjectionMap(mAliasMap);
 
        Cursor cursor = queryBuilder.query(mDBHelper.getReadableDatabase(),
                    new String[]{PharmacyContract.CatalogEntry.COLUMN_ID,
                            SearchManager.SUGGEST_COLUMN_TEXT_1},
                    selection,
                    selectionArgs,
                    null,
                    null,
                    null,
                    null);
 
        return cursor;
    }
Периодически при введении текста, стирания его и введении снова в SeacrhView возникает ошибка: "attempt to re-open an already-closed object: sqlitequery:". Нигде курсор я явно не закрываю. В changeCursor() предполагается, что старый курсор закрывается, но я пробовал менять на swapCursor() - такая же ситуация. Причем, исключение "плавающее", может возникнуть сразу, а может и через некоторое время.

Что можно еще посмотреть/попробовать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru