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);
    }

「DBActivities 型のメソッド openOrCreateDatabase(String, int, null) は定義されていません」というエラーが表示されます。ここで何が問題になる可能性がありますか?DBActivities クラスは、すべてのデータベース関連アクティビティのメイン クラスによって使用されています。

私はいくつかの調査を行い、使用してみました:

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

それでも結果は同じです。

4

1 に答える 1

1

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

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

このチュートリアルを参照してください: http://www.vogella.com/articles/AndroidSQLite/article.html

おそらく、次のようなもので SQLiteOpenHelper を拡張したいと思うでしょう:

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);
    }

}
于 2012-05-08T18:56:44.790 に答える