Android

来源:互联网 发布:怎样修复数据库 编辑:程序博客网 时间:2024/05/22 16:09
效果图如下:

下面是代码:
package com.example.diy_network;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.util.Xml;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;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 Person person;    private List<Person> persons = new ArrayList<>();    private ListView lv_mian_listView;    private MyAdapter myAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lv_mian_listView = (ListView) findViewById(R.id.lv_mian_ListView);        myAdapter = new MyAdapter();        lv_mian_listView.setAdapter(myAdapter);    }    public void getData(View view) {        new MyTask().execute();    }    class MyTask extends AsyncTask{        @Override        protected Object doInBackground(Object[] params) {            try {                URL url = new URL("http://localhost/Pazz/xxxx.action");                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();                urlConnection.setReadTimeout(5000);                int code = urlConnection.getResponseCode();                if (code == 200) {                    InputStream is = urlConnection.getInputStream();                    XmlPullParser xpp = Xml.newPullParser();                    xpp.setInput(is, "UTF-8");                    int type = xpp.getEventType();                    while (type != xpp.END_DOCUMENT) {                        switch (type) {                            case XmlPullParser.START_TAG:                                //获取开始标签的名字                                String startTagName = xpp.getName();                                if ("person".equals(startTagName)) {                                    person = new Person();                                    //获取name属性值                                    int pid = Integer.parseInt(xpp.getAttributeValue(0));                                    person.setPid(pid);                                } else if ("page".equals(startTagName)) {                                    //获取sex的文本值                                    int page = Integer.parseInt(xpp.nextText());                                    person.setPage(page);                                }                                else if ("pname".equals(startTagName)) {                                    //获取sex的文本值                                    String pname = xpp.nextText();                                    person.setPname(pname);                                }                                break;                            case XmlPullParser.END_TAG:                                //获取到结束标签的名字                                String endTagName = xpp.getName();                                if ("person".equals(endTagName)) {                                    persons.add(person);                                }                                break;                        }                        type = xpp.next();                    }                }            } catch (MalformedURLException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            } catch (XmlPullParserException e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(Object o) {            super.onPostExecute(o);            lv_mian_listView.setAdapter(myAdapter);        }    }    class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return persons.size();        }        @Override        public Object getItem(int position) {            return persons.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            LinearLayout linearLayout = new LinearLayout(MainActivity.this);            linearLayout.setGravity(Gravity.CENTER);            TextView tv1 = new TextView(MainActivity.this);            tv1.setWidth(300);            tv1.setText(""+persons.get(position).getPid());            TextView tv2 = new TextView(MainActivity.this);            tv2.setWidth(300);            tv2.setText(""+persons.get(position).getPname());            TextView tv3 = new TextView(MainActivity.this);            tv3.setWidth(200);            tv3.setText(""+persons.get(position).getPage());            linearLayout.addView(tv1);            linearLayout.addView(tv2);            linearLayout.addView(tv3);            return linearLayout;        }    }}
下面是布局文件:
package com.example.diy_network;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.util.Xml;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;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 Person person;    private List<Person> persons = new ArrayList<>();    private ListView lv_mian_listView;    private MyAdapter myAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lv_mian_listView = (ListView) findViewById(R.id.lv_mian_ListView);        myAdapter = new MyAdapter();        lv_mian_listView.setAdapter(myAdapter);    }    public void getData(View view) {        new MyTask().execute();    }    class MyTask extends AsyncTask{        @Override        protected Object doInBackground(Object[] params) {            try {                URL url = new URL("http://localhost/Pazz/xxxx.action");                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();                urlConnection.setReadTimeout(5000);                int code = urlConnection.getResponseCode();                if (code == 200) {                    InputStream is = urlConnection.getInputStream();                    XmlPullParser xpp = Xml.newPullParser();                    xpp.setInput(is, "UTF-8");                    int type = xpp.getEventType();                    while (type != xpp.END_DOCUMENT) {                        switch (type) {                            case XmlPullParser.START_TAG:                                //获取开始标签的名字                                String startTagName = xpp.getName();                                if ("person".equals(startTagName)) {                                    person = new Person();                                    //获取name属性值                                    int pid = Integer.parseInt(xpp.getAttributeValue(0));                                    person.setPid(pid);                                } else if ("page".equals(startTagName)) {                                    //获取sex的文本值                                    int page = Integer.parseInt(xpp.nextText());                                    person.setPage(page);                                }                                else if ("pname".equals(startTagName)) {                                    //获取sex的文本值                                    String pname = xpp.nextText();                                    person.setPname(pname);                                }                                break;                            case XmlPullParser.END_TAG:                                //获取到结束标签的名字                                String endTagName = xpp.getName();                                if ("person".equals(endTagName)) {                                    persons.add(person);                                }                                break;                        }                        type = xpp.next();                    }                }            } catch (MalformedURLException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            } catch (XmlPullParserException e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(Object o) {            super.onPostExecute(o);            lv_mian_listView.setAdapter(myAdapter);        }    }    class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return persons.size();        }        @Override        public Object getItem(int position) {            return persons.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            LinearLayout linearLayout = new LinearLayout(MainActivity.this);            linearLayout.setGravity(Gravity.CENTER);            TextView tv1 = new TextView(MainActivity.this);            tv1.setWidth(300);            tv1.setText(""+persons.get(position).getPid());            TextView tv2 = new TextView(MainActivity.this);            tv2.setWidth(300);            tv2.setText(""+persons.get(position).getPname());            TextView tv3 = new TextView(MainActivity.this);            tv3.setWidth(200);            tv3.setText(""+persons.get(position).getPage());            linearLayout.addView(tv1);            linearLayout.addView(tv2);            linearLayout.addView(tv3);            return linearLayout;        }    }}
0 0
原创粉丝点击