问题描述
- 局部变量初始化的问题
-
public class DatabaseHandler extends SQLiteOpenHelper {// All Static variables// Database Versionprivate static final int DATABASE_VERSION = 1;// Database Nameprivate static final String DATABASE_NAME = ""contextsManager"";// Locations table nameprivate static final String TABLE_LOCATIONLABLES = ""locationLables"";// LOCATIONLABLES Table Columns namesprivate static final String KEY_LOCID = ""loc_id"";private static final String KEY_LOCNAME = ""loc_name"";public DatabaseHandler(Context context) { super(context DATABASE_NAME null DATABASE_VERSION);}// Creating Tables@Overridepublic void onCreate(SQLiteDatabase db) { String TABLE_LOCATIONLABLES = ""CREATE TABLE "" + TABLE_LOCATIONLABLES + ""("" + KEY_LOCID + "" INTEGER PRIMARY KEY + KEY_LOCNAME + "" TEXT + "")""; db.execSQL(TABLE_LOCATIONLABLES); }
提示说的是局部变量TABLE_LOCATIONLABLES可能没有被初始化?可是我初始化了的呀,这个错误如何发生的呢?
解决方案
String TABLE_LOCATIONLABLES = ""CREATE TABLE "" + TABLE_LOCATIONLABLES + ""(""
等号两各有一个,而且String TABLE_LOCATIONLABLES
这个还是新定义的,计算机迷糊了,它不认为你上面已经定义了
解决方案二:
在 oncreate(db) 里重命名 字符串 TABLE_LOCATIONLABLES
@Override public void onCreate(SQLiteDatabase db) { String mQuery = ""CREATE TABLE "" + TABLE_LOCATIONLABLES + ""("" + KEY_LOCID + "" INTEGER PRIMARY KEY + KEY_LOCNAME + "" TEXT + "")""; db.execSQL(mQuery); }
时间: 2024-09-20 05:51:01