我正在尝试使用JSON捕获数据时使用Dialog。 但它总是返回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;
}
}
这是stacktrace:
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)
我一直在尝试搜索互联网,但我找到了解决方案 任何帮助都会被贬低。感谢..
答案 0 :(得分:2)
你有这个
public void Network()
构造函数没有返回类型
应该是
public Network()
{
// rest of the code
}
您在未调用的方法中初始化progressdialog。您不要在班级的任何地方调用方法网络。因此NullPointerException