package com.example.da;

import java.util.ArrayList;
import java.util.List;

import com.badu.net.Network;
import com.baidu.vo.Mydata;
import com.baidu.vo.myItem;
import com.example.xlistviews.XListView;
import com.example.xlistviews.XListView.IXListViewListener;
import com.thoughtworks.xstream.XStream;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity implements IXListViewListener {

    private TextView text;

    private String ss;
    private Mydata my;
    private ArrayList<myItem> item;

    private XListView lv;
    List<myItem> li = new ArrayList<myItem>();

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (XListView) findViewById(R.id.lv);
        lv.setPullLoadEnable(true);// 设置下拉刷新
        lv.setPullRefreshEnable(true);// 设置监听事件,重写两个方法
        lv.setXListViewListener(this);// 设置上拉刷新
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {

                Intent in = new Intent(MainActivity.this, Show.class);
                in.putExtra("id", my.getItem().get(arg2).getLink());
                startActivity(in);
            }
        });
        new Asy().execute();
    }

    class Asy extends AsyncTask<String, Integer, String> {

        @Override
        protected String doInBackground(String... params) {

            ss = Network.getjson();
            return ss;
        }

        @Override
        protected void onPostExecute(String result) {

            XStream xs = new XStream();
            xs.processAnnotations(Mydata.class);
            my = (Mydata) xs.fromXML(result);
            item = my.getItem();
            li = item;
            Base b = new Base(item, MainActivity.this);
            lv.setAdapter(b);
        }
    }

    class Asynt extends AsyncTask<String, Integer, String> {

        @Override
        protected String doInBackground(String... params) {

            ss = Network.getjson();
            return ss;
        }

        @Override
        protected void onPostExecute(String result) {

            XStream xs = new XStream();
            xs.processAnnotations(Mydata.class);
            my = (Mydata) xs.fromXML(result);
            ArrayList<myItem> item1 = my.getItem();
            li.addAll(item1);
            Base b = new Base(item, MainActivity.this);
            // lv.setAdapter(b);
            b.notifyDataSetChanged();
        }
    }

    public void onRefresh() {
        new Asy().execute();
        onLoad();
    }

    public void onLoadMore() {
        new Asynt().execute();
        onLoad();
    }

    private void onLoad() {
        lv.stopRefresh();
        lv.stopLoadMore();
        lv.setRefreshTime("2016-04-05");
    }
}