2012-04-24 1 views
2

Я хочу показать данные в gridview с сервера, и у меня есть XML-файл на сервере, который содержит данные. У меня есть исследование, чтобы показать данные по Grid View с http://developer.android.com/guide/tutorials/views/hello-gridview.html.Как я могу показать данные в Girdview из URL-адреса или XML-файла на сервере

Но я хочу показать это с сервера, как я могу это сделать. любой пример кода или ссылки оценен, потому что это для меня новая вещь.

+0

Как вы собираетесь получать данные с сервера, используя SOAP или доступ к прямым URL-адресам? – Harpreet

+0

И проверьте этот http://stackoverflow.com/questions/9414190/to-use-progressdialog-till-gridview-gets-loaded-from-webservice Надеюсь, если это поможет. – Harpreet

+0

@ Хвост мой xml-файл находится на сервере, с которого я хочу забрать обои в Grid View, а Songs url - в другом xml, который я хочу использовать – BraveGirl

ответ

0

Установите адаптер в сетку. (Т.е. ArrayAdapter) написать AsyncTask, который загружает информацию с сервера в функции doInbackground,

обновить содержимое адаптера в функции onPostExecute из AsyncTask

Проверил: http://developer.android.com/reference/android/os/AsyncTask.html для AsyncTask, есть также пример

+0

Или рассмотрите возможность использования AsyncTaskLoader, который менее подвержен ошибкам, чем AsyncTask –

0

Попробуйте этот код,

public class Get_User_Data extends AsyncTask<Void, Void, Void> { 
     private final ProgressDialog dialog = new ProgressDialog(
       GalleryShow.this); 

     protected void onPreExecute() { 
      this.dialog.setMessage("Loading..."); 
      this.dialog.setCancelable(false); 
      this.dialog.show(); 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      URL url = null; 
      try { 
       url = new URL("<Put your link here>"); 
      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } 
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder db = null; 
      try { 
       db = dbf.newDocumentBuilder(); 
      } catch (ParserConfigurationException e1) { 
       e1.printStackTrace(); 

      } 
      Document doc = null; 
      try { 
       doc = db.parse(new InputSource(url.openStream())); 
      } catch (SAXException e2) { 

       e2.printStackTrace(); 
      } catch (IOException e3) { 

       e3.printStackTrace(); 
      } 
      org.w3c.dom.Element elt; 
      try { 
       elt = doc.getDocumentElement(); 
       NodeList nodeList = elt.getElementsByTagName("file"); 
       temp = new String[nodeList.getLength()]; 

       for (int i = 0; i < nodeList.getLength(); i++) { 

        Element pathelement = (Element) nodeList.item(i); 
        imgList.add(pathelement.getAttribute("path")); 

        System.out.println("Images List" 
          + pathelement.getAttribute("path")); 
        list_data.add(new List_Data(pathelement 
          .getAttribute("path"), i + "")); 
       } 


      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      dealAdapter = new LazyAdapter(GalleryShow.this, 
        R.id.ImageView01, list_data); 
      return null; 
     } 

     protected void onPostExecute(Void result) { 

      gridview.setAdapter(dealAdapter); 
      if (this.dialog.isShowing()) { 
       this.dialog.dismiss(); 
      } 

     } 

    } 

В этом коде я использовал парсинг DOM, вы измените его на свой.

+0

Aerrow Я работаю с простым анализом xml, поэтому, где я хочу изменить этот код – BraveGirl

+0

Где находится ваш XML-файл либо в папке сервера или локального ресурса? – Aerrow

+0

на сервере my xml-файл находится в – BraveGirl