xml 上拉下拉 核心代码

package com.example.xml_shangxia;

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

import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.format.DateUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;

import com.example.adapter.MyBaseAdapter;
import com.example.net.NetWorkUtils;
import com.example.vo.MyDatas;
import com.example.vo.MyNews;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.thoughtworks.xstream.XStream;

public class MainActivity extends Activity{
    private ArrayList<MyNews>list=new ArrayList<MyNews>();
    private ArrayList<MyNews>list1=new ArrayList<MyNews>();
    int i=1;
    private MyBaseAdapter adapter;
    private PullToRefreshListView mPullRefreshListView;
    private boolean boo=true;
    private String JSON="http://www.oschina.net/action/api/news_list?catalog=1&pageIndex=1";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
        new MyAsyncTask().execute(JSON);
    }
    private void init() {
        // TODO Auto-generated method stub
        //mylist=(ListView) findViewById(R.id.mylist);
        mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);

        // Set a listener to be invoked when the list should be refreshed.
        mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
            @Override
            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),
                        DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);

                // Update the LastUpdatedLabel
                refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);

                // Do work to refresh the list here.
                new MyAsyncTask().execute(JSON+i++);
            }
        });

        // Add an end-of-list listener
        mPullRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {

            @Override
            public void onLastItemVisible() {
                Toast.makeText(MainActivity.this, "到底了!加载更多", Toast.LENGTH_SHORT).show();
                new MyAsyncTask().execute(JSON+i++);
            }
        });
    }
    class MyAsyncTask extends AsyncTask<String, Integer, String>{

        @Override
        protected String doInBackground(String... params) {
            // TODO Auto-generated method stub
            String url=params[0];
            String str=NetWorkUtils.newsList(url);
            return str;
        }
        @Override
        protected void onPostExecute(String result) {
            // TODO Auto-generated method stub
            if(boo=true){
                XStream stream=new XStream();
                stream.processAnnotations(MyDatas.class);
                MyDatas my=(MyDatas) stream.fromXML(result);
                list=(ArrayList<MyNews>) my.getNewslist().getNews();
                list1=list;
                adapter=new MyBaseAdapter(MainActivity.this, list1);
                mPullRefreshListView.setAdapter(adapter);
                adapter.notifyDataSetChanged();
                mPullRefreshListView.onRefreshComplete();
            }else{
                XStream stream=new XStream();
                stream.processAnnotations(MyDatas.class);
                MyDatas my=(MyDatas) stream.fromXML(result);
                list=(ArrayList<MyNews>) my.getNewslist().getNews();
                list1.addAll(list);
                adapter.notifyDataSetChanged();
                mPullRefreshListView.onRefreshComplete();
            }
            super.onPostExecute(result);
            mPullRefreshListView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                    // TODO Auto-generated method stub
                    Intent it=new Intent(MainActivity.this,InfoActivity.class);
                    it.putExtra("title", list.get(arg2-1).getTitle());
                    it.putExtra("body", list.get(arg2-1).getBody());
                    System.out.println("intent=========="+it);
                    startActivity(it);
                }
            });
        }
    }

}
时间: 2024-08-12 08:03:37

xml 上拉下拉 核心代码的相关文章

ListView实现上拉下拉刷新加载功能

第一步.首先在你项目中创建一个包存放支持下拉刷新和上拉加载的类: 第二步.需要把两个动画导入进来,实现180度旋转与360度旋转: 第三步.需要把支持的下拉与上拉显示的隐藏加载布局给导入进来 第四步.需要添加strings.xml与colors.xml文件的内容添加到项目里面: strings.xml <string name="pull_to_refresh">下拉刷新</string> <string name="release_to_ref

打造android万能上拉下拉刷新框架——XRefreshView (一)

一.写在开头的话 之所以写这个东西是因为项目中有用到,需要给stickylistheaders加个刷新,其实就是个framelayout里面有个listview的自定义view布局,但是一些知名的刷新框架我试了下都不支持,pulltoRefresh和XListView都是自己实现了一个可刷新的view,然后让我们来直接使用这个可刷新的view,从而达到可以上拉下拉刷新的目的.我这个需求需要的是一个我告诉他什么时候需要刷新他就能帮我刷新的框架,也就是说不管什么view,只要能告诉框架自己什么时候需

打造android万能上拉下拉刷新框架——XRefreshView (二)

打造Android万能上拉下拉刷新框架--XRefreshView(一) 打造Android万能上拉下拉刷新框架--XRefreshView(三) 一.前言 自从上次发表了打造android万能上拉下拉刷新框架--XRefreshView (一)之后,期间的大半个月一直都非常忙.可是我每天晚上下班以后都有在更新和维护XRefreshView,也依据一些朋友的意见攻克了一些问题,这次之所以写这篇文章.是由于XRefreshView已经到了一个功能相对可靠和稳定的一个阶段.以下我会介绍下Xrefre

iOS不得姐项目--精华模块上拉下拉的注意事项,日期显示,重构子控制器,计算cell的高度(只计算一次),图片帖子的显示

一.上拉下拉注意事项 使用MJRefresh中的上拉控件自动设置透明 当请求下页数据通过page的时候,注意的是上拉加载更多数据失败的问题,下拉加载数据失败了,页数应该还原.或者是请求成功的时候再将页数修改 二.帖子中的日期显示问题(操作日期的两个类的使用) 期望达到的效果:如图 <1>NSDate -- 需要通过NSDateFormatter(日期格式类)将日期转换成相同的格式,才能相互运算,计算出来的时间间隔是以秒数来呈现的. <2>NSCalendar(日历类) -- 通过当

练习使用XRecyclerView,可上拉下拉刷新。

1 package com.lixu.testxrecyclerview; 2 import android.support.v7.app.AppCompatActivity; 3 import android.os.Bundle; 4 import android.support.v7.widget.StaggeredGridLayoutManager; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 im

iOS 上拉下拉刷新

1 把李明杰的MJRfresh文件夹拖到工程中 2 然后引入头文件 3 在.m 文件中设置两个变量 4 在viewDidLoad里调用两个方法 5 实现需要调用的两个方法 iOS 上拉下拉刷新,布布扣,bubuko.com

打造Android万能上拉下拉刷新框架--XRefreshView(三)

转载请注明出处:http://blog.csdn.net/footballclub/ 打造Android万能上拉下拉刷新框架–XRefreshView(一) 打造Android万能上拉下拉刷新框架–XRefreshView(二) XRefreshView更新说明 这段时间一直有朋友给我反馈,让我帮忙解决问题,我汇总了下,有以下几种: 1. 处理listview滑动删除与XRefreshView的冲突 2. 处理viewpager和XRefreshView的冲突 3. listview滑动到底部自

上拉下拉-不刷新特效

上拉下拉-不刷新特效 上拉刷新数据.下拉刷新数据.上拉不刷新数据.下拉不刷新数据 下载地址:http://www.devstore.cn/code/info/1022.html 运行截图:     版权声明:本文为博主原创文章,未经博主允许不得转载.

jq 筛选选择器,方法,隐式迭代 元素显示隐藏 淡入淡出 上拉下拉 动画 类名操作以及样式

jQuery 地址:https://jquery.com/ 历史版本:http://code.jquery.com/ 1.x:兼容 IE678 低版本浏览器 2.x:不兼容 IE678 低版本浏览器 3.x:不兼容 IE678 低版本浏览器,官方主要维护版本 入口函数 // 一下两种入口函数 相当于原生中的 DOMContentLoaded $(function () { /* DOM加载完成的入口*/ }) $(document).ready(function(){ /* DOM加载完成的入口