上拉刷新,下拉加载

来源:互联网 发布:网页鼠标自动点击软件 编辑:程序博客网 时间:2024/04/27 21:24

MainActivity.class

public class MainActivity extends Activity implements IXListViewListener {    private XListView mListView;    private ArrayList<Art> items = new ArrayList<Art>();    private Handler mHandler;    private int start = 0;    private ListView lv;    private Main_item mAdapter;    private String id;    private ImageView iamge;    private int key = 10;    private int f=0;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);        iamge = (ImageView) findViewById(R.id.i_main_image);        initSlidingMenu();        MyAsyncTask1 m = new MyAsyncTask1();        m.execute("http://121.42.8.95:8090/EasyApp/mobile/JSONRequest?req=al&key="                + id + "&start=0&size=10&graduation=2");    }    private void onLoad() {        mListView.stopRefresh();        mListView.stopLoadMore();        mListView.setRefreshTime("刚刚");    }    @Override    public void onRefresh() {        mHandler.postDelayed(new Runnable() {            @Override            public void run() {                start=f+10;                items.clear();                geneItems(start, 10);                f=start;                onLoad();            }        }, 2000);    }    protected void geneItems(int start, int key) {        // TODO Auto-generated method stub        MyAsyncTask1 m = new MyAsyncTask1();        m.execute("http://121.42.8.95:8090/EasyApp/mobile/JSONRequest?req=al&key="                + id + "&start=" +start + "&size=" + key + "&graduation=2");    }    @Override    public void onLoadMore() {        mHandler.postDelayed(new Runnable() {            @Override            public void run() {                if(start>0){                    start-=10;                    geneItems(start, 10);                }else{                    start=0;                }                mAdapter.notifyDataSetChanged();                onLoad();            }        }, 2000);    }    private void initSlidingMenu() {        // 初始化SlidingMenu对象        final SlidingMenu menu = new SlidingMenu(this);        // 设置侧滑方式为左侧侧滑        menu.setMode(SlidingMenu.RIGHT);        /*         * 设置拖拽模式 SlidingMenu.TOUCHMODE_FULLSCREEN全屏触摸有效         * SlidingMenu.TOUCHMODE_MARGIN 拖拽边缘有效 SlidingMenu.TOUCHMODE_NONE         * 不响应触摸事件         */        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);        // 设置阴影的宽度        menu.setShadowWidthRes(R.dimen.shadow_width);        // 设置阴影的图片        menu.setShadowDrawable(R.drawable.shadow);        // 设置sldingMenu的剩余大小---=内容显示页对应的dp大小        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);        // 设置滑动时的渐变程度        menu.setFadeDegree(0.35f);        // 使SlidingMenu附加在Activity右边        // SlidingMenu.SLIDING_CONTENT 将侧滑栏设置为在内容位置        // SlidingMenu.SLIDING_WINDOW 将侧滑栏设置为在整个窗口呈现        menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);        // 设置SlidingMenu关联的布局        menu.setMenu(R.layout.menu);        lv = (ListView) menu.findViewById(R.id.l_lv);        MyAsyncTask m = new MyAsyncTask();        m.execute("http://121.42.8.95:8090/EasyApp/mobile/JSONRequest?req=cl&graduation=2");        iamge.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                menu.toggle();            }        });    }    class MyAsyncTask extends AsyncTask<String, Void, Info> {        @Override        protected Info doInBackground(String... params) {            // TODO Auto-generated method stub            return getData(params[0]);        }        @Override        protected void onPostExecute(final Info result) {            // TODO Auto-generated method stub            super.onPostExecute(result);            SpindmenuAdapter adapter = new SpindmenuAdapter(MainActivity.this,                    result.contents);            lv.setAdapter(adapter);            lv.setOnItemClickListener(new OnItemClickListener() {                @Override                public void onItemClick(AdapterView<?> arg0, View arg1,                        int arg2, long arg3) {                    // TODO Auto-generated method stub                    key=10;                    start=0;                    items.clear();                    mAdapter=null;                    MyAsyncTask1 m = new MyAsyncTask1();                    id = result.contents.get(arg2).id;                    m.execute("http://121.42.8.95:8090/EasyApp/mobile/JSONRequest?req=al&key="                            + result.contents.get(arg2).id                            + "&start=0&size=10&graduation=2");                }            });        }        @Override        protected void onPreExecute() {            super.onPreExecute();        }    }    class MyAsyncTask1 extends AsyncTask<String, Void, Articles> {        private ProgressDialog d;        @Override        protected Articles doInBackground(String... params) {            // TODO Auto-generated method stub            return getData1(params[0]);        }        @Override        protected void onPostExecute(final Articles result) {            // TODO Auto-generated method stub            super.onPostExecute(result);            mListView = (XListView) findViewById(R.id.xListView);            mListView.setPullLoadEnable(true);            items.addAll(result.articles);            if(items.isEmpty()){                start=start-10;                geneItems(start, 10);            }            if(mAdapter==null){                mAdapter = new Main_item(MainActivity.this, items);                mListView.setAdapter(mAdapter);            }            // mListView.setPullLoadEnable(false);            // mListView.setPullRefreshEnable(false);            mListView.setXListViewListener(MainActivity.this);            mHandler = new Handler();            mListView.setOnItemClickListener(new OnItemClickListener() {                @Override                public void onItemClick(AdapterView<?> arg0, View arg1,                        int arg2, long arg3) {                    // TODO Auto-generated method stub                    Intent intent = new Intent(MainActivity.this,                            SecondActivity.class);                    intent.putExtra("id", result.articles.get(arg2-1).id);                    startActivity(intent);                }            });            d.cancel();        }        @Override        protected void onPreExecute() {            d = new ProgressDialog(MainActivity.this);            d.setTitle("正在加载......");            d.show();            super.onPreExecute();        }    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    public Articles getData1(String string) {        // TODO Auto-generated method stub        try {            HttpURLConnection conn = (HttpURLConnection) new URL(string)                    .openConnection();            conn.setReadTimeout(6000);            conn.setConnectTimeout(6000);            conn.setRequestMethod("GET");            if (conn.getResponseCode() == 200) {                InputStream is = conn.getInputStream();                int len;                byte[] arr = new byte[1024];                StringBuffer buffer = new StringBuffer();                while ((len = is.read(arr)) != -1) {                    buffer.append(new String(arr, 0, len));                }                Gson g = new Gson();                Articles i = g.fromJson(buffer.toString(), Articles.class);                return i;            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return null;    }    public Info getData(String string) {        // TODO Auto-generated method stub        try {            HttpURLConnection conn = (HttpURLConnection) new URL(string)                    .openConnection();            conn.setReadTimeout(6000);            conn.setConnectTimeout(6000);            conn.setRequestMethod("GET");            if (conn.getResponseCode() == 200) {                InputStream is = conn.getInputStream();                int len;                byte[] arr = new byte[1024];                StringBuffer buffer = new StringBuffer();                while ((len = is.read(arr)) != -1) {                    buffer.append(new String(arr, 0, len));                }                Gson g = new Gson();                Info i = g.fromJson(buffer.toString(), Info.class);                System.out.println(i.contents.get(0).name);                return i;            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return null;    }}
0 0