2013-07-15 149 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