网络请求xml PULL解析

来源:互联网 发布:linux vi编辑怎么换行 编辑:程序博客网 时间:2024/05/17 06:39
package com.example.administrator.litong20160905;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.Toast;import com.example.administrator.litong20160905.adapter.MyAdapter;import com.example.administrator.litong20160905.bean.Listxinxi;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private LinearLayout ll;    private ListView lv;    private Listxinxi xinxi;    private MyAdapter myadapter;    private String url="http://172.17.29.120/localuser/loupengfei/kaoshi/student.XML";    private Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            switch (msg.what){                case 0:                    List<Listxinxi> listxin= (List<Listxinxi>) msg.obj;                    //Toast.makeText(MainActivity.this,listxin.toString(),Toast.LENGTH_SHORT).show();                    myadapter=new MyAdapter(listxin,MainActivity.this);                    lv.setAdapter(myadapter);                    myadapter.notifyDataSetChanged();                    break;                default:                    break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        /*ll= (LinearLayout) findViewById(R.id.ll);        Yuan yuan=new Yuan(MainActivity.this);        ll.addView(yuan);*/        getid(url);        lv= (ListView) findViewById(R.id.lv);    }    private void getid(final String urll) {        new Thread(){            @Override            public void run() {                try {                    URL url=new URL(urll);                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();                    connection.setReadTimeout(5000);                    connection.setConnectTimeout(5000);                    connection.setRequestMethod("GET");                    int code=connection.getResponseCode();                    if(code==200){                        InputStream is=connection.getInputStream();                        List<Listxinxi> listxin=tojson(is);                        Message message=new Message();                        message.what=0;                        message.obj=listxin;                        handler.sendMessage(message);                    }                } catch (MalformedURLException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }            }        }.start();    }    private List<Listxinxi> tojson(InputStream str){        List<Listxinxi> listxinxis = null;        try {            XmlPullParserFactory factory =XmlPullParserFactory.newInstance();            XmlPullParser parser = factory.newPullParser();            parser.setInput(str,"utf-8");            //类型判断            int eventType = parser.getEventType();            while(eventType!=XmlPullParser.END_DOCUMENT){                String name = parser.getName();                switch (eventType){                    case XmlPullParser.START_DOCUMENT:                        listxinxis=new ArrayList<>();                        break;                    case XmlPullParser.START_TAG:                        if("student".equals(name)){                            xinxi=new Listxinxi();                            xinxi.setXuehao(parser.getAttributeValue(0));                        }else if("name".equals(name)){                            xinxi.setName(parser.nextText());                        }else if("address".equals(name)){                            xinxi.setAddress(parser.nextText());                        }else if("phone".equals(name)){                            xinxi.setPhone(parser.nextText());                        }else if("tel".equals(name)){                            xinxi.setTel(parser.nextText());                        }                        break;                    case XmlPullParser.END_TAG:                        if(name.equals("student")) {                            listxinxis.add(xinxi);                        }                        break;                }                eventType=parser.next();            }        } catch (XmlPullParserException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return listxinxis;    }}

0 0
原创粉丝点击