java构建器出错nullpoint,错误显示java.lang.NullPointerException的方法getReadableDatabase()...

Could you please help me with error "java.lang.NullPointerException". I use custom listpreference to show elements from database. There two files CustomListPreference.java and DbHelper.java

CustomListPreference.java

public class CustomListPreference extends ListPreference {

CustomListPreferenceAdapter customListPreferenceAdapter = null;

Context mContext;

private SQLiteDatabase db;

DbHelper dbHelp = new DbHelper(mContext);

public CustomListPreference(Context context, AttributeSet attrs)

{

super(context, attrs);

mContext = context;

mInflater = LayoutInflater.from(context);

}

@Override

protected void onPrepareDialogBuilder(Builder builder)

{

...

try {

db = dbHelp.getReadableDatabase();//I get error java.lang.NullPointerException

...

}

DbHelper.java

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

public class DbHelper extends SQLiteOpenHelper {

static String DATABASE_NAME="myBase";

public static final String KEY_NAME="name";

public static final String KEY_ID="id";

public DbHelper(Context context) {

super(context, DATABASE_NAME, null, 1);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("create table tUser ("

+ "id integer primary key autoincrement,"

+ "name text,"

+ "exists integer" + ");");

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);

onCreate(db);

}

}

解决方案

because your mContext is null

place this line inside constructor..or any of your other preferece methods before using it

dbHelp = new DbHelper(context);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值