Ich bekomme Fehler, wenn ich versuche, die Daten zu analysieren.Fehler beim Analysieren von Werten
Das Programm dient zum Abrufen der Daten aus der Datenbank und parse es in das Hauptmenü, wo das RecycleView die Daten wie Name, Benutzername, Bild und Beschreibung auflistet.
Ich folge diesem Tutorial https://www.youtube.com/watch?v=g30Q9KHubTU
Dies ist der Code mit Fehlern ist.
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;
}
}
Dies sind die Fehler
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)
Das ist, weil Sie 'null' in Ihrer' doInBackground' Methode zurückgeben – GurV