Android开发----PullRefreshLibrary下拉刷新上拉加载相关代码

Mainactivity

public class MainActivity extends Activity {

private String url = "http://apis.juhe.cn/goodbook/catalog?key=9d6ef8c31647a206e05fcaff70527182&dtype=xml";
    private List<Xmlarray> list;
    private ListView lv;
    // 定义一个变量,来标识是否退出
    // 实现两次点击退出
    private static boolean isExit = false;
    private static final String TAG = MainActivity.class.getSimpleName();
    private static Handler mHandler = new Handler() {

@Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            isExit = false;
        }
    };

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.lv_main);
        HttpUtils httpUtils = new HttpUtils();
        httpUtils.send(HttpMethod.GET, url, new RequestCallBack<String>() {

@Override
            public void onFailure(HttpException arg0, String arg1) {
                // TODO Auto-generated method stub
                Log.i("TAG", "请求失败了");
            }

@Override
            public void onSuccess(ResponseInfo<String> arg0) {
                // TODO Auto-generated method stub
                // Log.i("TAG", arg0.result.toString());
                XStream stream = new XStream();
                stream.processAnnotations(XmlRoot.class);
                XmlRoot xroot = (XmlRoot) stream.fromXML(arg0.result);
                list = xroot.getResult().getItem();
                // Log.i("TAG", list.toString());
                lv.setAdapter(new XmlAdapter(list, getApplicationContext()));
                lv.setOnItemClickListener(new OnItemClickListener() {

@Override
                    public void onItemClick(AdapterView<?> parent, View view,
                            int position, long id) {
                        // TODO Auto-generated method stub
                        Intent intent = new Intent(MainActivity.this,
                                ItemActivitytwo.class);
                        intent.putExtra("lsid", list.get(position).getId());
                        startActivity(intent);
                    }
                });
            }
        });

}

// 重写onKeyDown方法
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            exit();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

private void exit() {
        if (!isExit) {
            isExit = true;
            Toast.makeText(getApplicationContext(), "再按一次后退键退出程序",
                    Toast.LENGTH_SHORT).show();
            // 利用handler延迟发送更改状态信息
            // 时间2s
            mHandler.sendEmptyMessageDelayed(0, 2000);
        } else {

Log.e(TAG, "exit application");

this.finish();
        }
    }

Itemactivity类

public class ItemActivitytwo extends Activity {
    private int index = 0;
    private String xmlid;
    private List<Jsonarray> list;
    private GridView gridView;
    private JsonAdapter adapter;
    private PullToRefreshGridView mPullRefreshGridView;

@SuppressWarnings({ "unchecked", "rawtypes" })
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.itemactivity);

Intent intent = getIntent();
        xmlid = intent.getStringExtra("lsid");
        // 获得PullToRefreshGridView
        mPullRefreshGridView = (PullToRefreshGridView) findViewById(R.id.pull_refresh_grid);
        gridView = mPullRefreshGridView.getRefreshableView();
        gethttp();
        // 实现上拉刷新与下拉加载
        mPullRefreshGridView.setOnRefreshListener(new OnRefreshListener2() {

@SuppressWarnings("rawtypes")
            @Override
            public void onPullDownToRefresh(PullToRefreshBase refreshView) {
                gethttp();
            }

@SuppressWarnings("rawtypes")
            @Override
            public void onPullUpToRefresh(PullToRefreshBase refreshView) {
                gethttp();
            }

});

}

private void gethttp() {
        // TODO Auto-generated method stub
        String url = "http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id="
                + xmlid + "&pn=5&rn=" + index + "";
        HttpUtils httpUtils = new HttpUtils();
        httpUtils.send(HttpMethod.POST, url, new RequestCallBack<String>() {

@Override
            public void onFailure(HttpException arg0, String arg1) {
                // TODO Auto-generated method stub
                Log.i("TAG", "请求失败啦");
            }
     
            @Override
            public void onSuccess(ResponseInfo<String> arg0) {
                // TODO Auto-generated method stub
                // gson解析
                Gson gson = new Gson();
                JsonResult fromJson = gson.fromJson(arg0.result,
                        JsonResult.class);
                list = fromJson.getResult().getData();
                Log.i("TAG", list.toString());
                adapter = new JsonAdapter(list, getApplicationContext());
                gridView.setAdapter(adapter);
                index = index++;
                // 适配器刷新
                adapter.notifyDataSetChanged();
                mPullRefreshGridView.onRefreshComplete();
            }
        });
    }

}

自定义Application实现加载圆形图片

public class MyApliation extends Application {

@Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        // 系统的
        ImageLoaderConfiguration configuration = ImageLoaderConfiguration
                .createDefault(getApplicationContext());
        ImageLoader.getInstance().init(configuration);

}

public static DisplayImageOptions getOptions() {

DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
                .displayer(new RoundedBitmapDisplayer(100)).build();

return displayImageOptions;

}
}

//Adapter加载图片

}

ImageLoader.getInstance().displayImage(list.get(position).getImg(),
                vh.iamge, MyApliation.getOptions());
    //bitmap加载图片
        // BitmapUtils bitmapUtils = new BitmapUtils(context);
        // bitmapUtils.display(vh.iamge, list.get(position).getImg());

时间: 2024-10-14 08:19:38

Android开发----PullRefreshLibrary下拉刷新上拉加载相关代码的相关文章

最新Android ListView 下拉刷新 上滑加载

开发项目过程中基本都会用到listView的下拉刷新和上滑加载更多,之前大家最常用的应该是pull to refresh或它的变种版吧,google官方在最新的android.support.v4包中增加了一个新类SwipeRefreshLayout,地址 这个类的作用就是提供官方的下拉刷新,并且效果相当不错,而上拉加载更多则用我们自定义的listview,也是相当简单. 下拉刷新 简单的介绍下: 首先它是一个viewgroup,但是它只允许有一个子控件,子控件能是任何view,使用的时候,所在

十分钟实现ListView下拉刷新上滑加载更多

说到ListView下拉刷新几乎每个APP都会用到,所以ListView下拉刷新是很重要的,就像ListView优化一样是你必会的东西. ListView实现下拉刷新如果我们开发人员自己编写相对来说比较费事的,当我们使用第三方库之后我们再来开发这个功能就会省事很多.相比与自己实现可以少编写不少代码,Android-PullToRefresh库可以轻松实现ListView的下拉刷新功能. 要使用Android—PullToRefesh库对ListView实现下拉刷新要经过以下几个步骤: 1.下载A

Android 下拉刷新上啦加载SmartRefreshLayout + RecyclerView

在弄android刷新的时候,可算是耗费了一番功夫,最后发觉有现成的控件,并且非常好用,这里记录一下. 原文是 https://blog.csdn.net/huangxin112/article/details/78781682 ,这里是看了之后,结合自己实际遇到的问题写的. 首先引入包. //下拉框 implementation 'com.android.support:recyclerview-v7:28.0.0-beta01' implementation 'com.scwang.smar

Android 下拉刷新上拉加载效果功能,使用开源项目android-pulltorefresh实现

应用场景: 在App开发中,对于信息的获取与演示,不可能全部将其获取与演示,为了在用户使用中,给予用户以友好.方便的用户体验,以滑动.下拉的效果动态加载数据的要求就会出现.为此,该效果功能就需要应用到所需要的展示页面中. 知识点介绍: 本文主要根据开源项目android-pulltorefresh展开介绍. android-pulltorefresh [一个强大的拉动刷新开源项目,支持各种控件下拉刷新 ListView.ViewPager.WevView.ExpandableListView.G

android Fragment 实例 Listfragment listiew 下拉刷新 上拉加载 横向滑动事件监听

Android Fragment开发实例及他色功能说明 代码太长,请网盘下载附件源代码: http://yunpan.cn/cs24a2Z7C5kRk (提取码:a0cf)  有疑问的欢迎联系QQ972910164 一. CustomListView说明:可下拉刷新,上拉加载,横向滑动接口回调, /** * 功能类似ListView,天机以下特性: * 1. 可下拉刷新,上拉加载,实现CustomListView.OnPullListener接口 * 3. Slide切换,实现CustomLis

Android 下拉刷新上拉加载效果功能

应用场景: 在App开发中,对于信息的获取与演示,不可能全部将其获取与演示,为了在用户使用中,给予用户以友好.方便的用户体验,以滑动.下拉的效果动态加载数据的要求就会出现.为此,该效果功能就需要应用到所需要的展示页面中. 知识点介绍: 本文主要根据开源项目android-pulltorefresh展开介绍. android-pulltorefresh [一个强大的拉动刷新开源项目,支持各种控件下拉刷新 ListView.ViewPager.WevView.ExpandableListView.G

android 安卓 listview 支持下拉刷新 上拉加载更多

[1]重写listView import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGrou

Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)

转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017 关于Android下拉刷新上拉加载,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上拉加载,而是针对下拉刷新上拉加载常用的一些应用场景就行了一些总结,包含了下拉刷新上拉加载过程中遇到的一些手势冲突问题的解决方法(只能算是抛砖引玉). 去年9月的时候,那时自己正在独立做Android项目.记得刚刚写完那个ListView列表页面(木有下拉刷新,上拉加载)

android 下拉刷新上拉加载更多,高仿ios左滑动删除item,解决了众多手势问题

一.前言 老规矩,别的不说,这demo是找了很相关知识集合而成的,可以说对我这种小白来说是绞尽脑汁!程序员讲的是无图无真相!现在大家一睹为快! 二.比较关键的还是scroller这个类的 package com.icq.slideview.view; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; i

Android 下拉刷新上拉载入 多种应用场景 超级大放送(上)

转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017 关于Android下拉刷新上拉载入,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上拉载入,而是针对下拉刷新上拉载入经常使用的一些应用场景即可了一些总结,包括了下拉刷新上拉载入过程中遇到的一些手势冲突问题的解决方法(仅仅能算是抛砖引玉). 去年9月的时候.那时自己正在独立做Android项目. 记得刚刚写完那个ListView列表页面(木有下拉刷新,上