刷新MainActivity



public class MainActivity extends Activity implements IXListViewListener{
    
    String path="http://www.oschina.net/action/api/news_list?catalog=1&pageSize=";
    private XListView list_id;
    MyAdapter myAdapter;
    
    Handler han=new Handler(){
        List<News> li=new ArrayList<News>();
        public void handleMessage(Message msg) {
            @SuppressWarnings("unchecked")
            List<News> list = (List<News>)msg.obj;
            int num = msg.what;
            if(num==1){
                li.addAll(list);
                myAdapter = new MyAdapter(MainActivity.this,li);
                list_id.setAdapter(myAdapter);
            
            }else if (num==2){
                li.clear();
                li.addAll(list);
                myAdapter.notifyDataSetChanged();
                
            }else if (num==3){
                li.clear();
                li.addAll(list);
                myAdapter.notifyDataSetChanged();
                
            }
            loadOver();
        };
    };
            
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list_id = (XListView)findViewById(R.id.list_id);
        list_id.setXListViewListener(this);
        list_id.setPullRefreshEnable(true);
        
    //    list_id.setLongClickable(true);
        
        list_id.setPullLoadEnable(true);
        
        new Thread(){
            public void run() {
                getData(10,1);
            };
        }.start();
        
    }
    public void getData(int count,int num){
          try {
              URL url =new URL(path+count);
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                conn.setRequestMethod("GET");
                conn.connect();
                InputStream inStream = conn.getInputStream();
                getXml(inStream,num);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
    }
    public void getXml(InputStream inStream,int i){
         String name = null;
            List<News> list = new ArrayList<News>();
            News news = null;
            // 解析全部的xml
            // boolean isParse = true;
            try {
                // 创建一个xmlPullParser的工厂
                XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                // 获取一个解析实例
                XmlPullParser parse = factory.newPullParser();
                // 设置输入流的编码格式
                parse.setInput(inStream, "UTF-8");
                // 当前事件的类型
                int eventType = parse.getEventType();

                while (eventType != XmlPullParser.END_DOCUMENT) {
                    Log.i("zzz","name的值:"+name);
                    switch (eventType) {
                    case XmlPullParser.START_DOCUMENT:
                        Log.i("zzz","开始" );
                        
                        break;

                    case XmlPullParser.START_TAG:
                        name = parse.getName();
                        if ("news".equals(name)) {
                            news = new News();
                        }
                        break;
                        
                    case XmlPullParser.TEXT:
                        
                        if ("title".equals(name)) {
                            news.setTitle(parse.getText());
                        } else if ("pubDate".equals(name)) {
                            news.setPubDate(parse.getText());
                           
                        }
                     
                    case XmlPullParser.END_TAG:

                        name = parse.getName();
                        if ("news".equals(name)) {
                            list.add(news);
                            news = null;
                        }
                        name="";
                        break;
                    }
                    eventType = parse.next();
                }
                Message msg = Message.obtain();
                msg.obj = list;
                msg.what=i;
                han.sendMessage(msg);
            } catch (XmlPullParserException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    int a=3;
    @Override
    public void onRefresh() {
        // TODO Auto-generated method stub
        new Thread(){
            public void run() {
                getData(a,2);
                a+=3;
                
            };
        }.start();
    }
    @Override
    public void onLoadMore() {
        // TODO Auto-generated method stub
        new Thread(){
            public void run() {
                getData(a,2);
                a+=3;
                
            };
        }.start();
    }
    // 停止加载更多/刷新
    public void loadOver() {
        // 停止加载更多
        list_id.stopLoadMore();
        // 停止刷新
        list_id.stopRefresh();
        //设置刷新时的时间
        list_id.setRefreshTime(getTime());
    }

public String getTime(){
    SimpleDateFormat format=new SimpleDateFormat("hh:mm:ss");
    Date date=new Date();
    String time = format.format(date);
    return time;    
}   
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值