Java 进度对话框出错
“进度”对话框有什么问题? java文件:Java 进度对话框出错,java,android,Java,Android,“进度”对话框有什么问题? java文件: public class Start_Screen extends Menu_Activity { List<Bitmap> lbmp; List<String> ltitles; List<String> ldesc; Custom_Adapter adapter; ProgressDialog pd; @Override protected void onCreate(Bundle savedInstan
public class Start_Screen extends Menu_Activity {
List<Bitmap> lbmp;
List<String> ltitles;
List<String> ldesc;
Custom_Adapter adapter;
ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.start_screen);
pd = new ProgressDialog(this, ProgressDialog.STYLE_SPINNER);
pd.setTitle("Downloading...");
pd.setMessage("Please wait.");
pd.setCancelable(false);
ListView list = (ListView) findViewById(R.id.soundslist);
lbmp = new ArrayList<Bitmap>();
ltitles = new ArrayList<String>();
ldesc = new ArrayList<String>();
new Download().execute();
adapter = new Custom_Adapter(this, lbmp, ltitles);
list.setAdapter(adapter);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
finish();
}
public class Download extends AsyncTask<Void, Void, Void>{
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
pd.dismiss();
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
String url = "picsite.comze.com/?json=1";
F JSONparser = new F();
JSONObject picsite = JSONparser.getJSONFromUrl(url);
try {
JSONArray posts = picsite.getJSONArray("posts");
for(int i=0;i<posts.length();i++){
JSONObject post = posts.getJSONObject(i);
String title = post.getString("title");
ltitles.add(title);
JSONArray photos = post.getJSONArray("attachments");
JSONObject photo = photos.getJSONObject(0);
String URL = photo.getString("url");
URL downURL = new URL(URL);
HttpURLConnection connect = (HttpURLConnection)downURL.openConnection();
connect.setDoOutput(true);
connect.connect();
InputStream is = connect.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(is);
lbmp.add(bmp);
String desc = photo.getString("description");
ldesc.add(desc);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pd.show();
}
}
}
public class Start\u屏幕扩展菜单活动{
列出lbmp;
列出清单;
列出ldesc;
自定义适配器;
进展性帕金森病;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.start_屏幕);
pd=新建ProgressDialog(这是ProgressDialog.STYLE\u微调器);
pd.setTitle(“下载…”);
设置消息(“请稍候”);
pd.可设置可取消(假);
ListView列表=(ListView)findViewById(R.id.soundslist);
lbmp=newarraylist();
ltitles=newarraylist();
ldesc=新的ArrayList();
新下载().execute();
适配器=新的自定义适配器(此、lbmp、ltitles);
list.setAdapter(适配器);
}
@凌驾
受保护的void onPause(){
//TODO自动生成的方法存根
super.onPause();
完成();
}
公共类下载扩展异步任务{
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
super.onPostExecute(结果);
pd.解散();
}
@凌驾
受保护的Void doInBackground(Void…参数){
//TODO自动生成的方法存根
String url=“picsite.comze.com/?json=1”;
F JSONparser=new F();
JSONObject picsite=JSONparser.getJSONFromUrl(url);
试一试{
JSONArray posts=picsite.getJSONArray(“posts”);
对于(int i=0;i您应该在显示对话框之前创建它
例如:
pd.create().show();
反而
pd.show()
另外,在onPostExecute中,如果pd!=null,则执行pd.disease();通过检查asynctask中的isfinishing()检查活动是否存在
if(!(Activity) context).isFinishing()){
dialog.show();
}
if(!(Activity) context).isFinishing()){
dialog.cancel();
}
尝试取消onDestroy()方法中的进程对话框也为异步任务粘贴代码
if(!(Activity) context).isFinishing()){
dialog.show();
}
if(!(Activity) context).isFinishing()){
dialog.cancel();
}