Android ProgressDialog返回null
我试图在使用JSON捕获数据时创建一个进度对话框。 但它总是返回空值。代码如下:Android ProgressDialog返回null,android,android-asynctask,progressdialog,Android,Android Asynctask,Progressdialog,我试图在使用JSON捕获数据时创建一个进度对话框。 但它总是返回空值。代码如下: class NetWork extends AsyncTask<Void, Void, ArrayAdapter<?>> { private ProgressDialog pd; public void Network() { try { ServiceStations service = new S
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;
}
}
我一直在尝试搜索互联网,但我已经找到了解决办法
任何帮助都将不胜感激。谢谢..你有这个
public void Network()
构造函数没有返回类型
应该是
public Network()
{
// rest of the code
}
在未调用的方法中初始化progressdialog。在类中的任何位置都不调用方法Network。因此
NullPointerException
您是否仅使用网络构造函数创建异步任务的实例?@user1722156还请注意,所有网络实时操作都应在doInbackGround
中完成。如果ServiceStations
网络实时操作是否将其移动到doInbackGround
中。另外service.load(WorkshopActivity.this)
。您已经具有活动上下文。
public Network()
{
// rest of the code
}