Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Tem12
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 4
#1

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

21.06.2016, 14:15. Просмотров 346. Ответов 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 строк кода .
http://www.cyberforum.ru/android-dev/thread2114662.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2016, 14:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Где в проекте Android Studio лучше добавлять элементы в БД SQL? (Программирование Android):

Поиск в большом проекте Android Studio
Если у меня есть большой проект и этот проект писал не я. Но я хочу найти в...

Android Studio, импорт не видит в проекте один из классов?
Скачал библиотеку в виде сорскода, подключил к проекту все хорошо импортнулось,...

Android Studio - в проекте пропал класс после запуска приложения
Здравствуйте, писал приложение и потребовалось создать новый класс. Создал, и...

Как работает библиотека в Android Studio, как ее подключить, чтобы она заработала в проекте?
здраствуйте) столкнулся с такой проблемой: не понимаю как работает библиотека в...

Посоветуйте какую IDE лучше поставить новичку? С Android Studio не получилось
Хочу начать писать приложения для Андроид, начал смотреть видеокурс...

1
Frozik6k
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 51
24.06.2016, 07:11 #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);
Хотя все строки, желательно еще занести в файл ресурсов. Если в ресурсах создать массив с вопросами, то можно одним циклом заполнять базу данных из ресурсов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2016, 07:11
Привет! Вот еще темы с решениями:

Где найти Preferences в Android Studio 1.2.2
Window > Preferences >Android > Build. Где найти Preferences в Android Studio...

Где находится файл .apk в Android Studio?
Где находится файл .apk проекта в android studio? И какое у него будет имя?

Где хранятся файлы с БД SQLite в Android Studio?
Такая проблема, создал БД, создал колонки с именами, но потом начал...

Как подключить SQL server к android studio?
Как подключить SQL server к android studio через интернет???!


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

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

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