android 查询数据库出现空指针,android – 创建sqlite数据库时出现空指针异常

我在将数据插入

Database时遇到此异常.我是android初学者,请帮我解决这个问题….我无法插入数据……我发布了我的代码和LOGCAT错误….

公共类Db扩展SQLiteOpenHelper {

Context context;

public static String databasename="modelnew.db";

private static final int SCHEMA_VERSION = 1;

public static String category_table="category";

public static String Id="categoryid";

public static String Name="caregoryname";

public Db(Context context) {

//super(context,Environment.getExternalStorageDirectory()+"/"+databasename, null, 1);

super(context,databasename, null, SCHEMA_VERSION);

// TODO Auto-generated constructor stub

this.context=context;

}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

String query="create table category_table(Id integer primary key ,Name text)";

db.execSQL(query);

}

@Override

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

// TODO Auto-generated method stub

}

}

class ProgressTask extends AsyncTask

{

@Override

protected void onPreExecute()

{

super.onPreExecute();

}

@Override

protected JSONObject doInBackground(String... args)

{

System.out.println("Inside do inbackground"+ purl);

Jsondbparser jParser = new Jsondbparser();

// Getting JSON from URL

JSONObject json = jParser.getJSONFromUrl(purl);

return json;

}

@Override

protected void onPostExecute(JSONObject json)

{

try

{

System.out.println("returnjson"+json);

// Getting JSON Array from URL

JSONObject json1 = json.getJSONObject("response");

System.out.println(json1.getString("success"));

jsonary = json1.getJSONArray("categoryid");

jsonarr=json1.getJSONArray("categoryname");

for (int i = 0; i < jsonary.length(); i++)

{

categoryId = jsonary.getInt(i);

System.out.println("id-- "+categoryId);

categoryName = jsonarr.getString(i);

System.out.println("id-- "+categoryName);

idlist.add(String.valueOf(categoryId));

list.add(categoryName);

addCategory();

/*db=new Db(con);

Model model=new Model();

model.setcid(categoryId);

model.setcname(categoryName);

addCategory(model);

//close();*/

}

}

catch (JSONException e)

{

e.printStackTrace();

}

}

}

void addCategory()

{

System.out.println("inside insert method");

Db h = new Db(getApplicationContext());

SQLiteDatabase db = h.getWritableDatabase();

for(int j=0;j<=idlist.size();j++)

{

ContentValues values = new ContentValues();

values.put("categoryid", idlist.get(j));//category id

values.put("categoryname", list.get(j)); // Category Name

System.out.println("id ---"+idlist.get(j));

System.out.println("name-----"+list.get(j));

// Inserting Row

db.insert("t_category", null, values);

db.close(); // Closing database connection

System.out.println("before end");

}

}

}

02-20 03:54:17.192: E/AndroidRuntime(931): FATAL EXCEPTION: main

02-20 03:54:17.192: E/AndroidRuntime(931): java.lang.NullPointerException

02-20 03:54:17.192: E/AndroidRuntime(931): at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109)

02-20 03:54:17.192: E/AndroidRuntime(931): at com.example.koto.Jsondb.addCategory(Jsondb.java:133)

02-20 03:54:17.192: E/AndroidRuntime(931): at com.example.koto.Jsondb$ProgressTask.onPostExecute(Jsondb.java:102)

02-20 03:54:17.192: E/AndroidRuntime(931): at com.example.koto.Jsondb$ProgressTask.onPostExecute(Jsondb.java:1)

02-20 03:54:17.192: E/AndroidRuntime(931): at android.os.AsyncTask.finish(AsyncTask.java:631)

02-20 03:54:17.192: E/AndroidRuntime(931): at android.os.AsyncTask.access$600(AsyncTask.java:177)

02-20 03:54:17.192: E/AndroidRuntime(931): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)

02-20 03:54:17.192: E/AndroidRuntime(931): at android.os.Handler.dispatchMessage(Handler.java:99)

02-20 03:54:17.192: E/AndroidRuntime(931): at android.os.Looper.loop(Looper.java:137)

02-20 03:54:17.192: E/AndroidRuntime(931): at android.app.ActivityThread.main(ActivityThread.java:5041)

02-20 03:54:17.192: E/AndroidRuntime(931): at java.lang.reflect.Method.invokeNative(Native Method)

02-20 03:54:17.192: E/AndroidRuntime(931): at java.lang.reflect.Method.invoke(Method.java:511)

02-20 03:54:17.192: E/AndroidRuntime(931): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)

02-20 03:54:17.192: E/AndroidRuntime(931): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)

02-20 03:54:17.192: E/AndroidRuntime(931): at dalvik.system.NativeStart.main(Native Method)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值