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

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

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

Где в проекте Android Studio лучше добавлять элементы в БД SQL? - Программирование Android

21.06.2016, 14:15. Просмотров 252. Ответов 1
Метки нет (Все метки)

Пишу приложение-викторину . У меня есть класс Db
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
public class Db extends SQLiteOpenHelper {
 
    public static final String DATABASE_NAME = "questionsDb";
    public static final int DATABASE_VERSION = 1;
    public static final String TABLE_QUESTIONS = "questions";
 
    public static final String KEY_ID = "_id";
    public static final String KEY_QUESTION = "question";
    public static final String KEY_RESPONSE_OPTION1 = "№1";
    public static final String KEY_RESPONSE_OPTION2 = "№2";
    public static final String KEY_RESPONSE_OPTION3 = "№3";
    public static final String KEY_RESPONSE_OPTION4 = "№4";
    public static final String KEY_CORRECT_ANSWER = "answer";
 
 
    public Db(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
      db.execSQL("create table " + TABLE_QUESTIONS + "(" + KEY_ID
      + " integer primary key," + KEY_QUESTION + " text," + KEY_RESPONSE_OPTION1 + " text,"
      + KEY_RESPONSE_OPTION2 + " text," + KEY_RESPONSE_OPTION3 + " text," + KEY_RESPONSE_OPTION4 +
      " text," + KEY_CORRECT_ANSWER + " text" + ")") ;
    }
 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("drop table is exists" + TABLE_QUESTIONS);
        onCreate(db);
    }
 
}
В главном активити инициализирую Db db ;
Java
1
2
3
4
5
6
7
8
9
10
11
12
db = new Db(this);
        SQLiteDatabase database = db.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
 
        contentValues.put(Db.KEY_ID, 1);
        contentValues.put(Db.KEY_QUESTION, "What is your name?");
        contentValues.put(Db.KEY_RESPONSE_OPTION1, "Vasya");
        contentValues.put(Db.KEY_RESPONSE_OPTION2, "Petya");
        contentValues.put(Db.KEY_RESPONSE_OPTION3, "Kolya");
        contentValues.put(Db.KEY_RESPONSE_OPTION4, "Artiom");
        contentValues.put(Db.KEY_CORRECT_ANSWER, "Artiom");
        database.insert(Db.TABLE_QUESTIONS, null, contentValues);
Но проблема в том что данных там будет очень много . Можно ли вынести добавление элементов в дб с помощью database.insert( ) в отдельный файл ?

Добавлено через 11 часов 26 минут
Ответьте пожалуйста . А то у меня в MainActivity уже больше 700 строк кода .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2016, 14:15     Где в проекте Android Studio лучше добавлять элементы в БД SQL?
Посмотрите здесь:
Android Поиск в большом проекте Android Studio
Android Android Studio, импорт не видит в проекте один из классов?
Android Посоветуйте какую IDE лучше поставить новичку? С Android Studio не получилось
Android Где найти Preferences в Android Studio 1.2.2
Где находится файл .apk в Android Studio? Android
Android Где хранятся файлы с БД SQLite в Android Studio?
Как подключить SQL server к android studio? Android
Где пункт меню File -> Settings Version -> Control -> Git в Android Studio Android
Android Genymotion android studio при запуске проекта все элементы перемещаются в левый верхний угол
Genymotion android studio при запуске проекта все элементы перемещаются в левый верхний угол Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Frozik6k
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 50
24.06.2016, 07:11     Где в проекте Android Studio лучше добавлять элементы в БД SQL? #2
Создай отдельный класс а там пропиши статический метод который будет вызываться с нужными параметрами. Например:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Class Question{
    public static void insert(SQLiteDatabase db){
        ContentValues contentValues = new ContentValues();
            contentValues.put(Db.KEY_ID, 1);
            contentValues.put(Db.KEY_QUESTION, "What is your name?");
            contentValues.put(Db.KEY_RESPONSE_OPTION1, "Vasya");
            contentValues.put(Db.KEY_RESPONSE_OPTION2, "Petya");
            contentValues.put(Db.KEY_RESPONSE_OPTION3, "Kolya");
            contentValues.put(Db.KEY_RESPONSE_OPTION4, "Artiom");
            contentValues.put(Db.KEY_CORRECT_ANSWER, "Artiom");
            db.insert(Db.TABLE_QUESTIONS, null, contentValues);
            
            contentValues.put(Db.KEY_ID, 2);
            // ------------------------------
            // ------------------------------
            // ------------------------------
            // ------------------------------
            db.insert(Db.TABLE_QUESTIONS, null, contentValues);
  
}
}
и просто вызови его в активити
Java
1
2
3
db = new Db(this);
        SQLiteDatabase database = db.getWritableDatabase();
        Question.insert(database);
Хотя все строки, желательно еще занести в файл ресурсов. Если в ресурсах создать массив с вопросами, то можно одним циклом заполнять базу данных из ресурсов.
Ответ Создать тему
Опции темы

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