2015-12-25 5 views
-3

Я - не новый пользователь для android programming. Я хочу использовать класс SQLiteOpenHelper для выполнения некоторых операций с базой данных. Вот мой SqliteController класс, который расширяет SQLiteOpenHelper:Log.i не выполняет

public class SqliteController extends SQLiteOpenHelper { 
Context context; 

public SqliteController(Context context) { 
    super(context, "sectionsDB", null, 1); 
    this.context = context; 

} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    String query; 
    query = "CREATE TABLE Sections (chapterName TEXT, sectionName TEXT, body TEXT)"; 
    db.execSQL(query); 
    Log.i("tablecreation", "table created"); 
} 
} 

(я только что упомянул ту часть, которая у меня есть проблемы с) в моей основной деятельности я создал экземпляр указанного класса в методе OnCreate деятельности, как это:

SqliteController controller = new SqliteController(this); 

Я хочу, чтобы заполнить базу данных путем чтения из XML-файла один раз в OnCreate метод SqliteController так после newing SqliteController в основной деятельности я не хочу делать какие-либо операции с базой данных. Если я добавлю controller.getWritableDatabase();, кажется, что у меня есть некоторые операции с этим, но все, что я делаю, это в классе SqliteController. Любое предложение?

+0

Я знаю, но что ваш комментарий в связи с моим вопросом? @saeed – Suzi

+0

вы добавляете controller.getWritableDatabase(); в вашей деятельности – saeed

+0

дайте мне знать результат – saeed

ответ

1

Вы можете добавить что-то вроде этого:

SqliteController controller = new SqliteController(this); 
controller.getWritableDatabase(); 
+0

Это работает! но я не знаю, что делает эта строка кода? – Suzi

+0

Выполняет ли метод onCreate без него? – Suzi

+0

Вам нужна вторая строка, потому что ** controller.getWritableDatabase(); ** _Создать и/или открыть базу данных, которая будет использоваться для чтения и записи. [Посмотреть это] (http://developer.android.com/reference /android/database/sqlite/SQLiteOpenHelper.html) –