2014-10-20 3 views
-2

Я хочу создать простую базу данных для моего приложения Android в sqlite. Я просто хочу добавить свои значения в таблицу.Как создать локальную базу данных в android для моего приложения

Это мой код, но это не работает для меня, потому что таблица не отображается в DDMS.

public class QuickSubmitContext extends SQLiteOpenHelper { 
    private static final int DATABASE_VERSION = 1; 
    private static final String DATABASE_NAME = "submitManager"; 
    private static final String TABLE_CONTACTS = "submit"; 
    private static final String KEY_ID = "id"; 
    private static final String KEY_PH_NO = "phone_number"; 
    private static final String KEY_DNCA = "donotca"; 
    private static final String KEY_CA = "callagain"; 
    private static final String KEY_NOTE = "note"; 
    public QuickSubmitContext(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY," + KEY_PH_NO + " TEXT," 
       + KEY_DNCA + " TEXT," + KEY_CA + " TEXT," + KEY_NOTE + " TEXT" + ")"; 
      db.execSQL(CREATE_CONTACTS_TABLE); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); 

     // Create tables again 
     onCreate(db); 
    } 
} 

Logcat

10-21 04:39:00.230: E/AndroidRuntime(835): FATAL EXCEPTION: main 
10-21 04:39:00.230: E/AndroidRuntime(835): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aspeage.quikw/com.aspeage.quikw.FragmentLayout}: java.lang.NullPointerException 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.os.Looper.loop(Looper.java:137) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.app.ActivityThread.main(ActivityThread.java:5041) 
10-21 04:39:00.230: E/AndroidRuntime(835): at java.lang.reflect.Method.invokeNative(Native Method) 
10-21 04:39:00.230: E/AndroidRuntime(835): at java.lang.reflect.Method.invoke(Method.java:511) 
10-21 04:39:00.230: E/AndroidRuntime(835): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
10-21 04:39:00.230: E/AndroidRuntime(835): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
10-21 04:39:00.230: E/AndroidRuntime(835): at dalvik.system.NativeStart.main(Native Method) 
10-21 04:39:00.230: E/AndroidRuntime(835): Caused by: java.lang.NullPointerException 
10-21 04:39:00.230: E/AndroidRuntime(835): at com.aspeage.quikw.FragmentLayout.onCreate(FragmentLayout.java:79) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.app.Activity.performCreate(Activity.java:5104) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
10-21 04:39:00.230: E/AndroidRuntime(835): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
10-21 04:39:00.230: E/AndroidRuntime(835): ... 11 more 
10-21 04:39:07.090: I/Process(835): Sending signal. PID: 835 SIG: 9 
10-21 04:39:13.050: E/Trace(866): error opening trace file: No such file or directory (2) 
+1

Пожалуйста, смотрите на этом уроке: http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ –

+0

@FaroukTouzi я вижу эту ссылку, а также сделал это, но у меня есть проблема, потому что моя таблица базы данных не отображается в моем logcat – Shekhar

+0

Что такое ошибка? Покажите свой лог-код, пожалуйста. –

ответ

4

Рекомендуемый метод для создания новой SQLite базы данных, чтобы создать подкласс SQLiteOpenHelper и переопределить onCreate() метод, в котором вы можете выполнить SQLite команды для создания таблиц в база данных. Например:

public class DictionaryOpenHelper extends SQLiteOpenHelper { 

    private static final int DATABASE_VERSION = 2; 
    private static final String DICTIONARY_TABLE_NAME = "dictionary"; 
    private static final String DICTIONARY_TABLE_CREATE = 
       "CREATE TABLE " + DICTIONARY_TABLE_NAME + " (" + 
       KEY_WORD + " TEXT, " + 
       KEY_DEFINITION + " TEXT);"; 

    DictionaryOpenHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(DICTIONARY_TABLE_CREATE); 
    } 
} 

Вот инструкции. http://developer.android.com/guide/topics/data/data-storage.html#db

+0

спасибо большое – Shekhar

+0

, пожалуйста, еще раз проверьте мой вопрос – Shekhar

+0

@Shekhar Поместите некоторые журналы в onCreate(), чтобы убедиться, что база данных создана. –