Error:(52, 33) error: incompatible types: ClearDB cannot be converted to Context

275
02 ноября 2017, 05:04

Помогите решить проблему. В классе ClearDB хочу реализовать разные методы работы с базой (добавить запись, удалить, очистить базу....). Потом использовать их местах где нужно.

public class ClearDB  {
    DBHelper dbHelper;
    //private Context context;

    public void Clear () {

        Log.d ("mLog", "Удалены все записи с базы");
        dbHelper = new DBHelper(this);
        try {
            dbHelper.createDataBase();
        } catch (IOException ioe) {
            throw new Error("Не возможно инициализировать базу данных");
        }
        try {
            dbHelper.openDataBase();
        } catch (SQLException sqle) {
            throw sqle;
            //Log.d ("mLog", "Ошибка открытия базы данных" + sqle.toString());
        }

        SQLiteDatabase database = dbHelper.getWritableDatabase();
        Cursor cursor = database.rawQuery("SELECT * FROM logpsw", null);

        final int record = cursor.getCount();
        cursor.close();// Количество записей в таблице базы
        if (record==0)
        {
            Log.d ("mLog", "Записи в базе отсутствую, добавьте новую запись");
        }
        else {
            try {
                database.delete(DBHelper.TABLE_LOGPWS, null, null);
                Log.d ("mLog", "Удалены все записи с базы");

            } catch (Exception e) {
                //e.printStackTrace();
                Log.d("mLog", "Ошибка соединения с базой", e);
               // Toast toastclear1 = Toast.makeText(MainActivity.this, >"Ошибка соединения с базой  -  " + e, Toast.LENGTH_LONG);
               // toastclear1.show();
            }
        }
        dbHelper.close();
        //return true;
    }  
}

Вызываю метод:

ClearDB clearDB = new ClearDB();
clearDB.Clear();

Если вместо this использовать getActivity() все равно ошибка:

Error:(52, 33) error: cannot find symbol method getActivity()

Answer 1

Вот мое решение, может кому то пригодится.

public class ClearDB {

DBHelper dbHelper;    public Context mContext;
public ClearDB (Context context){
    mContext = context;
}
public void mycleardb () {

    try {
        dbHelper = new DBHelper(mContext);
    } catch (Exception e) {
        e.printStackTrace();
        Log.d ("mLog", "Ошибка" + e);
    }
    try {
        dbHelper.createDataBase();
    } catch (IOException ioe) {
        throw new Error("Не возможно инициализировать базу данных");
    }
    try {
        dbHelper.openDataBase();
    } catch (SQLException sqle) {
        throw sqle;
    }
    SQLiteDatabase database = dbHelper.getWritableDatabase();
    Cursor cursor = database.rawQuery("SELECT * FROM logpsw", null);

    final int record = cursor.getCount();
    cursor.close();// Количество записей в таблице базы
    if (record==0)
    {
       Toast toastclear = Toast.makeText(mContext, "Записи в базе отсутствуют, добавьте новую запись", Toast.LENGTH_LONG);
        toastclear.show();
        Log.d ("mLog", "Записи в базе отсутствую, добавьте новую запись");
    }
    else {
        try {
            database.delete(DBHelper.TABLE_LOGPWS, null, null);
            Log.d ("mLog", "Удалены все записи с базы");
            Toast toastclear = Toast.makeText(mContext, "Удалены все записи", Toast.LENGTH_LONG);
            toastclear.show();
        } catch (Exception e) {
            //e.printStackTrace();
            Log.d("mLog", "Ошибка соединения с базой", e);
            Toast toastclear = Toast.makeText(mContext, "Ошибка соединения с базой  -  " + e, Toast.LENGTH_LONG);
            toastclear.show();
        }
    }
    dbHelper.close();
} }
READ ALSO
Динамическая подстановка запроса в JasperReports

Динамическая подстановка запроса в JasperReports

Новичок в JR, пытаюсь разобратьсяЕсть приложение, которое выводит данные из БД в зависимости от выбранных условий (отмеченных флагов), причем...

248
Проблема подключения с Windows на Linux

Проблема подключения с Windows на Linux

Есть код на JAVA, не могу подключиться с винды на linux (из 50 попыток одна удалась), хотя в обратную сторону всё корректно работает, в чем может быть...

230
Не работает код с SCREEN_BRIGHTNESS

Не работает код с SCREEN_BRIGHTNESS

Пытаюсь сделать мини приложение для регулировки яркости подсветки экрана

169