Search code examples
androidtoast

Cannot resolve method 'makeText(Data.DataBaseHandler, java.lang.String, int)'


Please check this, There are two issues first one is this database is not creating and the second one is this toast is giving me this error.

 public static final String KEY_ID="id";
public static final String KEY_NAME="Name";
public static final String KEY_IMAGE = "levelone";

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

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {

    String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + KEY_ID +
            " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_IMAGE + " BLOB" + ")";
    sqLiteDatabase.execSQL(CREATE_TABLE);

    Toast.makeText(DataBaseHandler.this,"sadads",Toast.LENGTH_LONG).show();

        }


@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
    sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);

    onCreate(sqLiteDatabase);
}

Solution

    1. Database is not creating why?

    Database created when you first call either getWritableDatabase() or getReadableDatabase(). Because DataBaseHandler just creates helper.

    DataBaseHandler helper = new DataBaseHandler(context);
    helper.getWritableDatabase();
    
    1. Toast is not showing why?

    Toast needs a context to show. You can't use SqliteOpenHelper which is DataBaseHandler as a context. But you can use context passed within constructor to getApplicationContext().

    public static final String KEY_ID = "id";
    public static final String KEY_NAME = "Name";
    public static final String KEY_IMAGE = "levelone";
    private Context context;
    
    public DataBaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        this.context = context;
    }
    
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
    
        String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + KEY_ID +
                " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_IMAGE + " BLOB" + ")";
        sqLiteDatabase.execSQL(CREATE_TABLE);
    
        Toast.makeText(context.getApplicationContext(), "sadads", Toast.LENGTH_LONG).show();
    
    }
    
    
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
    
        onCreate(sqLiteDatabase);
    }