0

データベースへの接続を担当し、クエリを実行して最終的に接続を閉じるDBAdapterクラスを作成しました。

Activityクラス ( ReminderBeep )から継承されていない別のクラスがありますが、このクラスで DBAdapter を使用する必要があります。

実際、DBAdapter コンストラクターを操作して接続を確立する方法がわかりません。

エラー: コンストラクター DBAdapter(ReminderBeep) は未定義です

DBAdapter は次のとおりです。

public class DBAdapter {

    static final String DATABASE_NAME = "MyDB";
    static final int DATABASE_VERSION = 2;
    final Context context;   
    DatabaseHelper DBHelper;
    SQLiteDatabase db;

    public DBAdapter(Context ctx)
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }
    private static  class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db)
        {              
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
        {
        }
     }

    //---opens the database---
    public DBAdapter open() throws SQLException 
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }

    //---closes the database---
    public void close() 
    {
        DBHelper.close();
    }
    public void insert(String sql)
    {
      db.execSQL(sql);      
    }
}

BeepReminder は次のとおりです。

public class ReminderBeep   
{
    public void DeleteDailyActivities()
    {
        DBAdapter db=new DBAdapter(this);
        db.open();
        String sql="delete from DailyWorks";
        db.insert(sql);
        db.close(); 
    }
}
4

1 に答える 1

2

ReminderBeep は拡張アクティビティではありません。しかし、DBAdapter は Context をパラメーターとして必要とし、

    DBAdapter db=new DBAdapter(this);

thisを指すReminderBeep

于 2013-06-02T12:06:46.457 に答える