2012-05-08 10 views
0
public class DBActivities { 
    private final String tableName = "Table_SMS"; 
    private final String CREATE_TABLE_SMS = "CREATE TABLE " + tableName + "(" + "db_date TEXT " + "db_sms_count INTEGER);"; 
    private SQLiteDatabase db; 

    public DBActivities() { 
     DoDBInitialization(); 
    } 

    private void DoDBInitialization() { 
     db = openOrCreateDatabase(tableName, 0, null); 
     db.setVersion(1); 
     db.setLocale(Locale.getDefault()); 
     db.setLockingEnabled(true); 
    } 

"メソッドopenOrCreateDatabase(String、int、null)はDBActivitiesタイプでは定義されていません"というエラーが表示されます。何が問題なの? DBActivitiesクラスは、データベース関連のすべてのアクティビティに対してメインクラスによって使用されています。openOrCreateDatabaseエラー

私はいくつかの研究を行なったし、私が使用してみました:

db = openOrCreateDatabase(tableName, null, Context.MODE_PRIVATE); 

をまだ結果は同じです。

答えて

1

これは基本的なJavaエラーです。あなたは存在しない関数を呼び出そうとしています。

openOrCreateDatabase(...)がコードで定義されていません。

は、このチュートリアルを参照してください。

private static class DbHelper extends SQLiteOpenHelper { 


    public DbHelper(Context context, String name, 
      CursorFactory factory, int version) { 
     super(context, name, factory, version); 
    } 

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

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     //called when the version of the existing db is less than the current 
     Log.w(this.getClass().getName(), "Upgrading db from "+oldVersion+" to "+newVersion); 
     db.execSQL("DROP TABLE IF EXISTS "+DATABASE_TABLE); 
     onCreate(db); 
    } 

} 
+0

SQLiteOpenHelperを使用すると、より良い方法であることに気づい:http://www.vogella.com/articles/AndroidSQLite/article.html

は、おそらくこのようなものでSQLiteOpenHelperを拡張したいです。それ以上に推薦されたものです。 – webgenius

関連する問題