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

Работа с SQLite

03.02.2016, 08:02. Показов 792. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Я новичок в разработке под андроид и экспериментируя натолкнулся на такой вопрос

В самом Activity отображаю таблицу
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
public class category extends AppCompatActivity {
 
    ListView teaserCategory;
    c_database cDatabase;
    SimpleCursorAdapter scAdapter;
    Cursor cursor;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_category);
 
        /* DATABASE */
 
        cDatabase = new c_database(this);
        cDatabase.open();
        cursor = cDatabase.getTable1();
        startManagingCursor(cursor);
        String[] from = new String[] {
                c_database.DBTABLE1_CATEGORY
        };
        int[] to = new int[] {
                R.id.category_name
        };
        scAdapter = new SimpleCursorAdapter(this, R.layout.teaser_category, cursor, from, to);
        teaserCategory = (ListView) findViewById(R.id.teaser_category);
        teaserCategory.setAdapter(scAdapter);
 
        /* //end DATABASE */
    }
 
    protected void onDestroy() {
        super.onDestroy();
        cDatabase.close();
    }
}
В activity получается вызывается запрос из .getTable1(), а вопрос в том как запрос перенести в activity а не вызывать из helper'a? Экспериментировал по разному и пытался гуглить но пока не нашел решения

Мой Helper:
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
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
 
public class c_database  {
 
    private static final String DB_NAME = "dboffline";
    private static final int DB_VERSION = 4;
    public static final String DBT_TABLE1 = "table1";
    public static final String DBT_TABLE2 = "table2";
    public static final String DBT_TABLE3 = "table3";
 
    public static final String DBTABLE1_ID = "_id";
    public static final String DBTABLE1_NAME = "name";
    public static final String DBTABLE1_CATEGORY = "category";
 
    public static final String DBTABLE2_ID = "_id";
    public static final String DBTABLE2_NAME = "name";
    public static final String DBTABLE2_CATEGORY = "category";
 
    public static final String DBTABLE3_ID = "_id";
    public static final String DBTABLE3_NAME = "name";
    public static final String DBTABLE3_CATEGORY = "category";
 
    //
    // Тут создаем таблицы
    //
 
    private final Context mCtx;
    private DBHelper mDBHelper;
    public SQLiteDatabase mDB;
    public c_database(Context ctx) {
        mCtx = ctx;
    }
 
    public void open() {
        mDBHelper = new DBHelper(mCtx, DB_NAME, null, DB_VERSION);
        mDB = mDBHelper.getWritableDatabase();
    }
 
    public synchronized void close() {
        if (mDBHelper!=null) {
            mDBHelper.close();
        }
    }
 
    // Получаем данные
    public Cursor getTable1() {return mDB.query(DBT_TABLE1, null, DBTABLE1_CATEGORY + " LIKE '%1%'", null, null, null, NAME);}
    public Cursor getTable2() {return mDB.query(DBT_TABLE2, null, DBTABLE1_CATEGORY + " LIKE '%2%'", null, null, null, NAME);}
    public Cursor getTable3() {return mDB.query(DBT_TABLE3, null, DBTABLE1_CATEGORY + " LIKE '%3%'", null, null, null, NAME);}
 
    private class DBHelper extends SQLiteOpenHelper {
        public DBHelper(Context context, String name, CursorFactory factory, int version) {
            super(context, name, factory, version);
        }
        // создаем и заполняем БД
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(DBT_TABLE1_CREATE);
            db.execSQL(DBT_TABLE2_CREATE);
            db.execSQL(DBT_TABLE3_CREATE);
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2016, 08:02
Ответы с готовыми решениями:

Работа с sqlite
Привет, ребята. У меня тут возник затык. Решил написать приложение-тест, в котором пользователь отвечает на вопросы, набирает баллы за...

Работа с SQLite
В приложении нужна база данных без дополнительных установок ПО. Выбор пал SQLite. И так нашел в интернете FAQ по ней: тык И так я...

Работа с SQLite
Дорогие ребята, уже много часом, нет даже дней, провел в поисках доходчивого примера как работать с базой данных SQLite. Вы моя последняя...

4
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,083
03.02.2016, 10:04
Ничего не понятно, что вы хотите? И в чем сакральный смысл вопроса? Данные у вас возвращаются, чего же боле?
0
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 2
03.02.2016, 10:13  [ТС]
К примеру по первому запросу
Java
1
public Cursor getTable1() {return mDB.query(DBT_TABLE1, null, DBTABLE1_CATEGORY + " LIKE '%1%'", null, null, null, NAME);}
заполняется ListView (Допустим 30 записями) но при клике по какой либо записи в ListView требуется обновить запрос и изменить вот эту DBTABLE1_CATEGORY + " LIKE '%1%'" часть т.е. по сути выполнить другой запрос и его вернуть, но писать 30 таких запросов думаю не очень хорошо, поэтому хотелось бы реализовать более универсальный способ
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
03.02.2016, 11:04
ADLK, честно говоря, я тоже ничего не понял. По-моему, там есть метод rawQuery, туда можете писать SQL-запрос в обычной форме, ещё и лучше будет.
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,083
03.02.2016, 11:31
Т.е. если я правильно понимаю, вы хотите изменить представление на другое, но в этом же ListView. причем изменить существенно. Так не делают, поэтому вы и не нашли ответа в гуголе. Обычно изменяют представление путем фильтрации, т.е. количественного изменения, а для этого достаточно передать параметр для фильтра.
вобщем для более конкретного ответа надо знать чего вы хотите от приложения.

Добавлено через 3 минуты
Как-то так:
Java
1
2
3
4
getTable(int mLike) {
   if (mLike == 1) String tbl = DBT_TABLE1; // и DBTABLE1_CATEGORY тоже
   return mDB.query(tbl, null, DBTABLE1_CATEGORY + " LIKE '%" + mLike + "%'", null, null, null, NAME);
}
Но еще учтите, что like работает в Sqlite не так как обычно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2016, 11:31
Помогаю со студенческими работами здесь

Работа с Sqlite
Здравствуйте. Проблема заключается в следующем: не могу импортировать данные из файла базы данных с расширением .sqlite. Никак не...

Работа с SQLite
Здравствуйте, я делаю курсовую работу на java, моя тема "Домашняя бухгалтерия". Не подскажите как мне организовать мою БД, какие там должны...

Работа с SQLite
Здравствуйте, я делаю курсовую работу на java, моя тема "Домашняя бухгалтерия". Не подскажите как мне организовать мою БД, какие там должны...

Работа C# с SQLite
Уважаемые форумчане! Помогите решить задачу. Создал тестовый пример для изучения работы взаимодействия C# EntityFramework с БД на...

Работа с SQLite
Добрый день! Подскажите кто работал с SQLite. Как работать со связями в этой БД, к примеру связи один ко многим и тд . Почему то погуглив...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru