无法解析方法'makeText(Data.DataBaseHandler,java.lang.String,int)'

问题描述:

请检查这个问题,首先有两个问题,一个是这个数据库没有创建,第二个是这个吐司给我这个错误。无法解析方法'makeText(Data.DataBaseHandler,java.lang.String,int)'

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

请检查此https://*.com/help/how-to-ask –

  1. 数据库也没有创造什么原因?当你第一次打电话或者getWritableDatabase()getReadableDatabase()创建

数据库。因为DataBaseHandler只是创建帮手。

DataBaseHandler helper = new DataBaseHandler(context); 
helper.getWritableDatabase(); 
  1. 吐司未展示为什么呢?
开始=>

吐司需要一个上下文来显示。您不能使用SqliteOpenHelper,即DataBaseHandler作为上下文。但是您可以使用在构造函数中传递的上下文来访问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); 
} 
+0

谢谢数据库创建,并吐司也工作.. – level