Java 解析值时获取错误

Java 解析值时获取错误,java,android,Java,Android,我试图解析数据时出错 该程序将从数据库中检索数据,并将其解析到主菜单,在主菜单中,RecycleView列出了诸如名称、用户名、图像和描述等数据 我正在学习这个教程 这是有错误的代码 DataParser.java public class DataParser extends AsyncTask<Void,Void,Boolean> { //<<<line 22 Context c; String jsonData; RecyclerView rv; Prog

我试图解析数据时出错

该程序将从数据库中检索数据,并将其解析到主菜单,在主菜单中,RecycleView列出了诸如名称、用户名、图像和描述等数据

我正在学习这个教程

这是有错误的代码

DataParser.java

public class DataParser extends AsyncTask<Void,Void,Boolean> { //<<<line 22

Context c;
String jsonData;
RecyclerView rv;

ProgressDialog pd;
ArrayList<Item> items = new ArrayList<>();

public DataParser(Context c, String jsonData, RecyclerView rv) {
    this.c = c;
    this.jsonData = jsonData;
    this.rv = rv;
}

@Override
protected void onPreExecute() {
    super.onPreExecute();

    pd = new ProgressDialog(c);
    pd.setTitle("Parse");
    pd.setMessage("Parsing...Please wait.");
    pd.show();
}

@Override
protected Boolean doInBackground(Void... params) {

    return null;
}

@Override
protected void onPostExecute(Boolean success) {
    super.onPostExecute(success);

    pd.dismiss();

    if(success)  //<<<line 59
    {
        //bind
        MyAdapter adapter = new MyAdapter(c,items);
        rv.setAdapter(adapter);

    }
    else
    {
        Toast.makeText(c, "Unable to parse", Toast.LENGTH_SHORT).show();

    }

}

private Boolean parseData()
{
    try
    {
        JSONArray ja = new JSONArray(jsonData);
        JSONObject jo;

        items.clear();
        Item item;

        for(int i = 0; i<ja.length();i++)
        {
            jo=ja.getJSONObject(i);

            int itemid = jo.getInt("itemid");
            String imagepath = jo.getString("imagepath");
            String itemname = jo.getString("itemname");
            String username = jo.getString("username");
            String itemdesc = jo.getString("itemdesc");

            item = new Item();

            item.setId(itemid);
            item.setItemname(itemname);
            item.setUsername(username);
            item.setItemdesc(itemdesc);
            item.setImagepath(imagepath);

            items.add(item);

        }

        return true;

    } catch (JSONException e) {
        e.printStackTrace();
    }
    return false;
}




}

这是因为您总是从
doInBackground
返回
null
。因此,
onPostExecute()
中的
success
变量始终为空。在
doInBackground
内部具有适当的解析逻辑,并根据解析是否成功,返回true或false。

这是因为在
doInBackground
方法中返回了
null
java.lang.NullPointerException: 
Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference

at chengweifeng1132701116.fyp.m_MySQL.DataParser.onPostExecute(DataParser.java:59)

at chengweifeng1132701116.fyp.m_MySQL.DataParser.onPostExecute(DataParser.java:22)