Android ProgressDialog关闭和AlertDialogShow(如果没有Internet连接)
我正在为我的应用程序使用web服务。数据在方法callWebService中运行。我在填充ListView时显示ProgressDialog。我还想检查是否没有网络连接来关闭ProgressDialog并向用户显示AlertDialog。有人能帮我一下吗?这是我的代码Android ProgressDialog关闭和AlertDialogShow(如果没有Internet连接),android,progressdialog,android-alertdialog,internet-connection,Android,Progressdialog,Android Alertdialog,Internet Connection,我正在为我的应用程序使用web服务。数据在方法callWebService中运行。我在填充ListView时显示ProgressDialog。我还想检查是否没有网络连接来关闭ProgressDialog并向用户显示AlertDialog。有人能帮我一下吗?这是我的代码 myProgressDialog = ProgressDialog.show(ExchangeMoneMK1Activity.this, "Please wait...", "L
myProgressDialog = ProgressDialog.show(ExchangeMoneMK1Activity.this,
"Please wait...", "Loading...", true);
Thread thread = new Thread(this);
thread.start();
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch(msg.what){
case 0:
myProgressDialog.dismiss();
int resID = R.layout.list_item;
aa = new ExchangeRateAdapter(ExchangeMoneMK1Activity.this, resID,currencyList);
lw.setAdapter(aa);
break;
}
}
})
我还没有alertdialog,因为如果没有internet连接,进度条不会关闭
我已经把安卓利德名单上的特权
有人能帮我吗?最后还可以与try catch and put handler一起使用。sendEmptyMessage0;在芬兰
因为我认为你得到了任何借口,你的流量从callWebService中跳跃到捕捉。。。。。并且没有到达handler.sendEmptyMessage0;行……。使用异步任务。这会简单得多。一般情况如下。可能会有一些小的编译错误,但是,这会给你一个想法
class MyTask extends AsyncTask<Void, Void, ArrayList> {
protected Void doInBackground(Void... params) {
ArrayList currencyList;
if(isNetworkAvailable())
currencyList = callWebService();
return currencyList;
}
void onPreExecute() {
myProgressDialog = ProgressDialog.show(ExchangeMoneMK1Activity.this,
"Please wait...", "Loading...", true);
}
void onPostExecute(ArrayList currencyList) {
myProgressDialog.dismiss();
if (currencyList == null) {
//Handle error
return;
}
int resID = R.layout.list_item;
aa = new ExchangeRateAdapter(ExchangeMoneMK1Activity.this, resID,currencyList);
lw.setAdapter(aa);
}
}
class MyTask extends AsyncTask<Void, Void, ArrayList> {
protected Void doInBackground(Void... params) {
ArrayList currencyList;
if(isNetworkAvailable())
currencyList = callWebService();
return currencyList;
}
void onPreExecute() {
myProgressDialog = ProgressDialog.show(ExchangeMoneMK1Activity.this,
"Please wait...", "Loading...", true);
}
void onPostExecute(ArrayList currencyList) {
myProgressDialog.dismiss();
if (currencyList == null) {
//Handle error
return;
}
int resID = R.layout.list_item;
aa = new ExchangeRateAdapter(ExchangeMoneMK1Activity.this, resID,currencyList);
lw.setAdapter(aa);
}
}