2013-07-15 190 views
1

我想在使用JSON捕捉數據時進行對話。 但它總是返回null。下面是代碼:Android ProgressDialog返回null

class NetWork extends AsyncTask<Void, Void, ArrayAdapter<?>> { 

     private ProgressDialog pd; 

     public void Network() { 
      try { 
       ServiceStations service = new ServiceStations(); 
       service.load(WorkshopActivity.this.getApplicationContext()); 
      } catch (IOException e) { 
       // do nothing 
       e.printStackTrace(); 
      } catch (JSONException e) { 
       // do nothing 
       e.printStackTrace(); 
      } 
      pd = new ProgressDialog(WorkshopActivity.this); 
      pd.setMessage("Load"); 
      pd.setCancelable(false); 
      pd.setCanceledOnTouchOutside(false); 

     } 

     @Override 
     public ArrayAdapter<?> doInBackground(Void... params) { 


      @SuppressWarnings({ "unchecked", "rawtypes" }) 
      final ArrayAdapter<?> areaAdapter = new ArrayAdapter(
        WorkshopActivity.this, android.R.layout.simple_list_item_1, 
        ServiceStations.getAreaList()); 

      return areaAdapter; 
     } 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      try { 
       pd.show(); // this returns null 
      } catch (NullPointerException e) { 
       // TODO: handle exception 
       e.printStackTrace(); 
      } 

     } 

     @Override 
     public void onPostExecute(ArrayAdapter<?> areaAdapter) { 
      /* 
      * if (dialog.isShowing()) { dialog.dismiss(); } 
      */ 
      list = (ListView) findViewById(R.id.listWorkshopCity); 
      list.setAdapter(areaAdapter); 
      adapter = areaAdapter; 
     } 

    } 

這裏是堆棧跟蹤:

07-15 04:34:15.006: W/System.err(3393): java.lang.NullPointerException 
07-15 04:34:15.006: W/System.err(3393):  at com.jatismobile.iklaim.activities.WorkshopActivity$NetWork.onPreExecute(WorkshopActivity.java:74) 
07-15 04:34:15.026: W/System.err(3393):  at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586) 
07-15 04:34:15.026: W/System.err(3393):  at android.os.AsyncTask.execute(AsyncTask.java:534) 
07-15 04:34:15.036: W/System.err(3393):  at com.jatismobile.iklaim.activities.WorkshopActivity.onCreate(WorkshopActivity.java:102) 

我一直試圖在互聯網上搜索,但我已經找到了解決這一 任何幫助將apreciated。感謝..

+0

您是否僅使用Network Constructor創建了一個asynctask實例? – KDeogharkar

回答

2

你有這樣的

public void Network() 

構造函數沒有返回類型

應該

public Network() 
{ 
     // rest of the code 
}  

你在這不叫方法初始化progressdialog。你不要在你的課堂上的任何地方打電話給方法網絡。因此NullPointerException

+0

哦@拉康丹丹。 – KDeogharkar

+0

我很尷尬沒有意識到這一點。謝謝你的回覆 – Ozon

+0

@ user1722156也注意到你所有的網絡實際操作都應該在'doInbackGround'中完成。如果'ServiceStations'確實將網絡操作移到了'doInbackground'中。另外'service.load(WorkshopActivity.this)'。您已經擁有活動上下文。 – Raghunandan