mardi 23 février 2016

Using SQLite Database with Fragments

I have a DBHelper class to work with SQLite. With normal activity it works very well. I want to learn fragments. But now i can't access DatabaseHelper class. Says Database_TABLE is not public and cannot be accessed outside package. I don't know what to do. Maybe just move DatabaseHelper to fragments package?

My DatabaseHelper class:

package com.blogspot.rossokam.acharsoz;

import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
import android.util.Log;

/**
  * Created by nagizade on 2/2/16.
  */
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
 static final String DATABASE_TABLE = "yourpass";

public static final String SITE_NAME_COLUMN = "site_name";
public static final String LOGIN_COLUMN = "login";
public static final String PASSWORD_COLUMN = "password";

private static final String DATABASE_CREATE_SCRIPT = "create table "
        + DATABASE_TABLE + " (" + BaseColumns._ID
        + " integer primary key autoincrement, " + SITE_NAME_COLUMN
        + " text not null, " + LOGIN_COLUMN + " text, " + PASSWORD_COLUMN
        + " text);";

public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

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

public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                      int version, DatabaseErrorHandler errorHandler) {
    super(context, name, factory, version, errorHandler);
}

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

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Запишем в журнал
    Log.w("SQLite", "Обновляемся с версии " + oldVersion + " на версию " + newVersion);

    // Удаляем старую таблицу и создаём новую
    db.execSQL("DROP TABLE IF IT EXISTS " + DATABASE_TABLE);
    // Создаём новую таблицу
    onCreate(db);
}

}

Part from fragments with error

 mDatabaseHelper = new DatabaseHelper(getActivity(), "mydatabase.db", null, 1);
    mSqLiteDatabase = mDatabaseHelper.getReadableDatabase();



    ListView siyahi = getActivity().;

    registerForContextMenu(siyahi);

    cursor =  mSqLiteDatabase.rawQuery("select * from "+ DatabaseHelper.DATABASE_TABLE, null);
    String[] headers = new String[] {DatabaseHelper.SITE_NAME_COLUMN, DatabaseHelper.LOGIN_COLUMN,DatabaseHelper.PASSWORD_COLUMN};

Aucun commentaire:

Enregistrer un commentaire