wemall app商城源碼Android 獲取XML網絡數據並綁定到ListView

wemall-mobile是基於WeMall的android app商城,只須要在原商城目錄下上傳接口文件便可完成服務端的配置,客戶端可定製修改。本文分享Android 獲取XML網絡數據並綁定到ListView,對數據進行獲取並顯示代碼信息,供技術員參考學習。

一、添加ListView中每一項的itemandroid

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
  android:id="@+id/record"
  android:layout_width="230dp"
  android:layout_height="wrap_content" />
<TextView
  android:id="@+id/name"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" />
</LinearLayout>
二、添加實體類NewsObj
public class NewsObj implements Serializable {
  private String name;
  private int id;
}// 省去屬性get和set方法
三、添加一個類用於處理請求消息
public class NewsService {
    // 解析XML數據
    private static List parseXML(InputStream ins) throws Exception {
        List list = new ArrayList();
        NewsObj obj = null;
        XmlPullParser parser = Xml.newPullParser();
        parser.setInput(ins, "UTF-8");
        int event = parser.getEventType();
        while (event != XmlPullParser.END_DOCUMENT) {
            switch (event) {
            case XmlPullParser.START_TAG:
                if ("news".equals(parser.getName())) {
                    int id = new Integer(parser.getAttributeValue(0));
                    obj = new NewsObj();
                    obj.setId(id);
                } else if ("name".equals(parser.getName())) {
                    obj.setName(parser.nextText());
                }
                break;
            case XmlPullParser.END_TAG:
                if ("news".equals(parser.getName())) {
                    list.add(obj);
                    obj = null;
                }
                break;
            }
            event = parser.next();
        }
        return list;
    }
 
    // 獲取最新的資訊
    public static List getLastnews(String Urlpath) throws Exception {
        URL url = new URL(Urlpath);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5000);
        conn.setRequestMethod("GET");
        Log.i("CONN", conn.toString());
        if (conn.getResponseCode() == 200) {
            InputStream ins = conn.getInputStream();
            return parseXML(ins);
        }
        return null;
    }
}
四、修改MainActivity
public class MainActivity extends Activity {
    private Handler handler;
    private SimpleAdapter adapter;
    private ListView lv;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.lv);
        handler = new Handler();
        new Thread(runa).start();
    }
    
    private Runnable setadapter = new Runnable() {
        @Override
        public void run() {
            lv.setAdapter(adapter);
        }
    };
 
    private void SetView() {
        try {
            List videos = NewsService.getLastnews("http://10.0.2.2:4484/WebSite1/XMLFile.xml");
            List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
            for (NewsObj news : videos) {
                HashMap<String, Object> item = new HashMap<String, Object>();
                item.put("id", news.getId());
                item.put("name", news.getName());
                data.add(item);
            }
            adapter = new SimpleAdapter(getApplicationContext(), data,
                    R.layout.item, new String[] { "id", "name" }, new int[] { R.id.record, R.id.name });
            handler.post(setadapter); // 添加一個任務到主線程的handler!!!
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    private Runnable runa = new Runnable() {
        @Override
        public void run() {
            Looper.prepare();
            SetView();
        }
    };
}
五、添加一個web測試項
   上一步中網站請求地址返回的數據以下
<?xml version="1.0" encoding="utf-8" ?>
    <videos>
      <news id ="11">
        <name>hello world</name>
      </news>
      <news id ="12">
        <name>Livingstone</name>
      </news>
    </videos>
六、添加網絡訪問權限,運行程序

原文詳情地址:http://Git.oschina.NET/zzunet...
wemall doraemonAndroid app商城詳情地址:http://www.koahub.com/home/pr...
wemall官網地址:http://www.wemallshop.com
wemall 開源微商城 ,微信商城,商城源碼,三級分銷,微生鮮,微水果,微外賣,微訂餐---專業的o2o系統
圖片描述web

相關文章
相關標籤/搜索