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

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

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

Работа с SQLite - Программирование Android

03.02.2016, 08:02. Просмотров 368. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2016, 08:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с SQLite (Программирование Android):

Работа с готовой SQLite базой на андроид - Программирование Android
Здравствуйте! Пытаюсь подключить готовую sqlite базу с помощью этого кода, взятого из интернета: package com.alexvsalex.HelpforMath; ...

Работа с базой SQLite: чем нужно пользоваться вместо SimpleCursorLoader? - Программирование Android
Учусь программировать под Android. Сделал ListView со своим расположением( для TextView, что то типа заголовок и текст). есть возможность...

SQLite - Программирование Android
Приложение вылетает с ошибкой, не подскажете, в чём проблема? public class DatabaseHelper extends SQLiteOpenHelper { private...

SQLite - Программирование Android
Возвращаясь к старой теме, вернусь к проблеме. По рекомендации попробовал сделать от сюда Тут отправляем данные для записи в бд obj...

SQLite - Программирование Android
Создаю простенькую таблицу. db.execSQL("create table " + DATABASE_TABLE_NAME + " (" + ID_COLUMN + " integer primary key...

SQLite - Программирование Android
Мне не подскажите где можно взять хорошие примеры по SQlite.

4
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
03.02.2016, 10:04 #2
Ничего не понятно, что вы хотите? И в чем сакральный смысл вопроса? Данные у вас возвращаются, чего же боле?
0
ADLK
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 2
03.02.2016, 10:13  [ТС] #3
К примеру по первому запросу
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
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
03.02.2016, 11:04 #4
ADLK, честно говоря, я тоже ничего не понял. По-моему, там есть метод rawQuery, туда можете писать SQL-запрос в обычной форме, ещё и лучше будет.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
03.02.2016, 11:31 #5
Т.е. если я правильно понимаю, вы хотите изменить представление на другое, но в этом же 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
03.02.2016, 11:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2016, 11:31
Привет! Вот еще темы с ответами:

SQLite - Программирование Android
почему id = 0 ??? public void onClick(View view) { dataBase = new DataBase(context); sqLiteDatabase =...

Sqlite trigger - Программирование Android
Гуру SQLite, обьясните... 1) насколько SQLite И андроди поддерживает тригеры? насколько это "универсальная" штука? Если та-же база...

SQLite запрос - Программирование Android
Здраствуйте, у мене есть таблица events... там есть поле action_date, в етом поле дата и время в секундах, я не знаю как мне написать...

RecyclerView и SQLite - Программирование Android
Здравствуйте делал по этому гайду RecyclerView http://www.vogella.com/tutorials/AndroidRecyclerView/article.html#exercise_recycleview . У...


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

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

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