2

我想在服务器的网格视图中显示数据,并且服务器上有包含数据的 xml 文件。我已经研究了从http://developer.android.com/guide/tutorials/views/hello-gridview.html链接显示网格视图上的数据。

但我想从服务器显示它我该怎么做。感谢任何示例代码或链接,因为这对我来说是新事物。

4

2 回答 2

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 解析,您将自己修改它。

于 2012-04-24T08:26:19.233 回答
0

为您的gridview设置一个适配器。(即 ArrayAdapter)在 doInbackground 函数中编写一个从服务器下载信息的 AsyncTask,

更新 AsyncTask 的 onPostExecute 函数中的适配器内容

检查: http: //developer.android.com/reference/android/os/AsyncTask.html对于AsyncTask,还有一个例子

于 2012-04-24T08:21:33.870 回答