ProgressDialog& Web服务响应

时间:2014-06-02 11:53:36

标签: android json

我试图动态加载listview。

首先,从Web服务器获取前10个数据并将其添加到listview。 对于每十行,在获取数据时应出现proggress对话框。 如果我不使用dismis,则会出现proggres对话框。 如果我使用dismis,proggresbar不会出现或出现,也不会在屏幕上显示。 虽然从Web服务屏幕获得响应持续1-2秒。它不应该。 这是我的代码

 public void setMessageList(int rowsArea){


     ProgressDialog progressDialog = ProgressDialog.show(AdminMessages.this, "", "Loading...");
     progressDialog.getWindow().setGravity(Gravity.BOTTOM);

     List<NameValuePair> parameter = new ArrayList<NameValuePair>();
      String url_confirmation =getInstance.getInstance().getUrl()+"getspecificrowmessages.php";
        parameter.add(new BasicNameValuePair("rowsarea", Integer.toString(rowsArea)));
        JSONObject  json = jsonParser.makeHttpRequest(url_confirmation,"POST", parameter);

        try { 
            int success = json.getInt("result"); 
            if(success == 1) { 

             JSONArray messages = json.getJSONArray("messages"); 
                for(int i=0;i<messages.length();i++){
                    JSONObject c = messages.getJSONObject(i);

                    String subject=c.getString("theSubject");
                    Integer id=c.getInt("id");
                    Integer msgId=c.getInt("msgId");
                    String senderName=c.getString("sender_name");
                    String receiverName=c.getString("recipient_name");
                    String dateTime=c.getString("dateTime");
                    String theFileNames=c.getString("theFileNames");
                    messageDetailList.add(new MessageListDetail(subject,senderName,receiverName,dateTime,theFileNames,id,msgId));

                }
                page+=10;
            }
            progressDialog.dismiss();
        }
        catch (JSONException e) {

            e.printStackTrace(); 
        } 


 }

1 个答案:

答案 0 :(得分:0)

原因是您应该使用ProgressBar,并使用setVisibility(View.VISIBLE)管理其可见性以显示它,并setVisibility(View.GONE)隐藏它。