我想在服务器的网格视图中显示数据,并且服务器上有包含数据的 xml 文件。我已经研究了从http://developer.android.com/guide/tutorials/views/hello-gridview.html链接显示网格视图上的数据。
但我想从服务器显示它我该怎么做。感谢任何示例代码或链接,因为这对我来说是新事物。
我想在服务器的网格视图中显示数据,并且服务器上有包含数据的 xml 文件。我已经研究了从http://developer.android.com/guide/tutorials/views/hello-gridview.html链接显示网格视图上的数据。
但我想从服务器显示它我该怎么做。感谢任何示例代码或链接,因为这对我来说是新事物。
试试这个代码,
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 解析,您将自己修改它。
为您的gridview设置一个适配器。(即 ArrayAdapter)在 doInbackground 函数中编写一个从服务器下载信息的 AsyncTask,
更新 AsyncTask 的 onPostExecute 函数中的适配器内容
检查: http: //developer.android.com/reference/android/os/AsyncTask.html对于AsyncTask,还有一个例子