2011-10-18 16 views
0

我已經創建了一個ListActivity,我在其中顯示一些數據,但按下載按鈕應用程序後下載最新數據,它將顯示在ListActivity中,請幫助我如何刷新ListActivity。如何在下載數據後刷新ListActivity

 public void fetch1(){ 

       event=this; 

       // TODO Auto-generated method stub 
       try { 

        Runnable runnable = new Runnable() { 
         @Override 
         public void run() { 
           handler.post(new Runnable() { 
            @Override 
            public void run() { 
             try{ 

      //dialog.show(); 


      BufferedReader in = null; 





      String url=URLManager.orderUrl+DataFactory.userData.sid+"&dnumber="+DataFactory.userData.dnumber+"&from_date="+fromDateStr+"&to_date="+toDateStr; ; 

     // String login = "morris"; 
      //String pass = "mor$ris"; 

      DefaultHttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet(); 


      client.getCredentialsProvider().setCredentials(new AuthScope("newdev.objectified.com", 80), new UsernamePasswordCredentials(URLManager.user, URLManager.pass)); 

      request.setURI(new URI(url)); 
      HttpResponse response = client.execute(request); 

       in = new BufferedReader 
       (new InputStreamReader(response.getEntity().getContent())); 
       StringBuffer sb = new StringBuffer(""); 
       String line = ""; 
       String NL = System.getProperty("line.separator"); 
       while ((line = in.readLine()) != null) { 
        sb.append(line + NL); 
       } 
       in.close(); 
       String page = sb.toString(); 
       // Toast.makeText(event,url+"--::::--"+ page, Toast.LENGTH_LONG).show(); 


        OrdersHandler handler=new OrdersHandler(); 
       SAXParserFactory spf = SAXParserFactory.newInstance(); 
       SAXParser sp = spf.newSAXParser(); 
       XMLReader xr = sp.getXMLReader(); 
       xr.setContentHandler(handler); 
       InputSource is = new InputSource(); 
        is.setCharacterStream(new StringReader(page));   
        xr.parse(is); 
        Vector v=handler.getData(); 
        DataFactory.ordersVector=v; 


       dataVector=DataFactory.ordersVector; 

       ordersId=new String[dataVector.size()]; 
       for(int a=0;a<dataVector.size();a++){ 
        OrdersData o=(OrdersData)dataVector.elementAt(a); 
        ordersId[a]=o.order_id; 



       }// end of the for 


       //event.setListAdapter(new IconicAdapter()); 

      // adapter.clear(); 
       // Create an ArrayAdapter, that will actually make the Strings above 
       // appear in the ListView 






        /* 
       for(int a=0;a<v.size();a++){ 
        OrdersData o=(OrdersData)v.elementAt(a); 
        names=names+o.order_id+"\n"; 


       }// end of the for loop 

       //String data=d.sid+"\n"+d.dtitle+"\n"+d.dcountry+"\n"+d.dcity; 
        Toast.makeText(event, names, Toast.LENGTH_LONG).show(); 
        */ 


             }catch(Exception e){ 


             } 
             } 
           }); 
          } 

        }; 
        new Thread(runnable).start(); 



        //executeHttpGet(); 

       } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
        Toast.makeText(this, e+"", Toast.LENGTH_SHORT).show(); 
       } 
       adapter.setNotifyOnChange(true); 
       //adapter.clear(); 
       adapter=new IconicAdapter(); 
       this.setListAdapter(adapter); 

      }// end of the fetch method 

我下載數據,那麼要刷新ListActivity.But應用程序要當我按下下載按鈕被撞壞

回答

1
adapter.notifyDataSetChanged() 

你要調用此ListView的適配器上刷新列表顯示。下載數據後,您還必須更新傳遞給適配器的資源。

+0

請參閱上述編輯... – androider