My main activity:
public class DiaryActivity extends AppCompatActivity {
private ArrayList<String> allURL = new ArrayList<>();
public void setList(ArrayList<String> list) {
this.allURL = list;
}
private void fireYourAsyncTask() {
new shitson(this).execute();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_diary);
fireYourAsyncTask();
}
My other .java:
public class shitson extends AsyncTask<Void, Void, ArrayList<String>> {
ArrayList<String> tmp;
private DiaryActivity activity;
public shitson(DiaryActivity diaryActivity) {
}
protected ArrayList<String> doInBackground(Void... arg0) {
tmp = new ArrayList<>();
HttpHandler sh = new HttpHandler();
String url2 = "https://................";
String jsonStr = sh.makeServiceCall(url2);
if (jsonStr != null) {
try {
JSONArray urlOfURLs = new JSONArray(jsonStr);
for (int i = 0; i < urlOfURLs.length(); i++) {
JSONObject JSONURL = urlOfURLs.getJSONObject(i);
String url = JSONURL.getString("url");
tmp.add(url);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
writeout();
return null;
}
@Override
protected void onPostExecute(ArrayList<String> strings) {
super.onPostExecute(strings);
activity.setList(tmp);
}
public void writeout() {
for (String i : tmp) {
Log.e("-0-0-0-0-0-0-0-", i);
}
}
}
What I want to have the list I made in shitson.java in my DiaryActivity. In the shitson.java the writeout() function writes the right informations in Logcat but at activity.setList(tmp); I get error messages like these:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.petkovics.mango.DiaryActivity.setList(java.util.ArrayList)' on a null object reference
at com.example.petkovics.mango.shitson.onPostExecute(shitson.java:57)
at com.example.petkovics.mango.shitson.onPostExecute(shitson.java:20)
What is non-sense since the writeout() function after I filled up the "tmp" ArrayList, it tells me every single data it has to do. But still in onPostExecute it gets crazy...