Note that there are some explanatory texts on larger screens.

plurals
  1. POProgressDialog in AsyncTask throwing a NullPointerException?
    text
    copied!<p>I'm trying to display a <code>ProgressDialog</code> while loading a <code>json</code> feed from a http server. I get a <code>NullPointerException</code> in <code>doInBackground</code> and <code>onPostExecute</code>. If I have not misunderstood <code>AsyncTask</code>, in <code>onPostExecute</code> the final code will run! Where is my fault? Here's my activity code:</p> <pre><code>public class ResultInput extends Activity { int count = 0; String mainUrl; String[] product_pict_part; InputStream is = null; private ProgressDialog pd; String TAG = "meinDebug"; ParseEan parse_code; String readProductNameEan; ImageView productPic; String productName; Drawable drawable; TextView product_name; TextView text_level; int productLevel; private Context context; // private MyProgressDialog dialog; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); new ProgressTask(ResultInput.this).execute(); } private InputStream fetch(String urlString) throws MalformedURLException, IOException { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet request = new HttpGet(urlString); HttpResponse response = httpClient.execute(request); return response.getEntity().getContent(); } private class ProgressTask extends AsyncTask&lt;String, Void, Boolean&gt; { private ProgressDialog dialog; private Activity activity; // private List&lt;Message&gt; messages; public ProgressTask(Activity activity) { this.activity = activity; context = activity; dialog = new ProgressDialog(context); } /** progress dialog to show user that the backup is processing. */ /** application context. */ protected void onPreExecute() { this.dialog.setMessage("Progress start"); this.dialog.show(); } @Override protected void onPostExecute(final Boolean success) { pd.dismiss(); productPic.setImageDrawable(drawable); Log.i(TAG, "Picture URL " + mainUrl); product_name.setText(productName); if (productLevel == 1) { text_level.setText("helal"); } else if (productLevel == 2) { text_level.setText("mittel"); } else if (productLevel == 3) { text_level.setText("haram"); } else if (productLevel == 4) { text_level.setText("in analyse"); } if (dialog.isShowing()) { dialog.dismiss(); } if (success) { Toast.makeText(context, "OK", Toast.LENGTH_LONG).show(); } else { Toast.makeText(context, "Error", Toast.LENGTH_LONG).show(); } } protected Boolean doInBackground(final String... args) { try { mainUrl = "http://nur-efsan.de/websHalalCheck/public/image/index/dir/"; product_name = (TextView) findViewById(R.id.produkt_name); text_level = (TextView) findViewById(R.id.text_level); productPic = (ImageView) findViewById(R.id.productpic); productName = parse_code.parseJSONPost("data", "name", readProductNameEan); String productPicture = parse_code.parseJSONPost("data", "image", readProductNameEan); productLevel = Integer.parseInt(parse_code.parseJSONPost( "data", "levelId", readProductNameEan)); product_pict_part = productPicture.split("/"); mainUrl = mainUrl + product_pict_part[0] + "/name/" + product_pict_part[1]; try { is = fetch(mainUrl); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } drawable = Drawable.createFromStream(is, "src"); return true; } catch (Exception e) { Log.e("tag", "error", e); return false; } } } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload