私はアンドロイド開発に不慣れで、レコードを追加して表示できる簡単なアプリケーションを作成しようとしています。データを正常に追加してテーブルに表示できます。プログラムを実行するたびに機能します。(私はこのチュートリアルに従っています)しかし、Eclipseを閉じて新しいデータを追加して表示しようとするたびに、以前に入力した情報が消えてしまいました。Eclipse を閉じると、データベースが保存されないようです。これが私がフォローしているサンプルコードです。
package com.example.hotornot;
import java.sql.Statement;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class Example {
public static final String KEY_ROWID = "id";
public static final String KEY_NAME = "name";
public static final String KEY_NUM = "number";
public static final String DATABASE_NAME = "dbTry";
public static final String DATABASE_TABLE = "tblSamp";
public static final int DATABASE_VERSION = 1;
public DbHelper ourhelper;
public final Context ourcontext;
public SQLiteDatabase ourdatabase;
class DbHelper extends SQLiteOpenHelper{
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
arg0.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID + " INTEGER, " + KEY_NAME + " NULL, " + KEY_NUM + " NULL);");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
arg0.execSQL("DROP TABLE IF EXIST " + DATABASE_TABLE);
onCreate(arg0);
}
}
public Example(Context c)
{
ourcontext = c;
}
public Example open() throws SQLException
{
ourhelper = new DbHelper(ourcontext);
ourdatabase = ourhelper.getWritableDatabase();
return this;
}
public void close()
{
ourhelper.close();
}
public long createEntry(String name, String num)
{
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(KEY_NAME, name);
cv.put(KEY_NUM, num);
return ourdatabase.insert(DATABASE_TABLE, null, cv);
}
public String getData()
{
// TODO Auto-generated method stub
String[] columns = new String[]{ KEY_ROWID,KEY_NAME, KEY_NUM};
Cursor c = ourdatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String result = "";
int iRow = c.getColumnIndex(KEY_ROWID);
int iName = c.getColumnIndex(KEY_NAME);
int iNum = c.getColumnIndex(KEY_NUM);
for (c.moveToFirst(); ! c.isAfterLast(); c.moveToNext()){
result = result + c.getString(iRow) + " " +c.getString(iName) + " " + c.getString(iNum) + "\n";
}
return result;
}
}