• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android pulltorefresh使用,androidpulltorefresh

Android pulltorefresh使用,androidpulltorefresh

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了pulltorefresh使用,pulltorefresh,pulltorefresh下载,pulltorefresh.jar,pulltorefresh.js等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android pulltorefresh使用,androidpulltorefresh


pulltorefresh插件可以轻松实现上拉下拉刷新,github.com上直接搜索进行下载。

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ptr="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <com.handmark.pulltorefresh.library.PullToRefreshListView
    android:id="@+id/pull_to_refresh_listview"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    ptr:ptrDrawable="@drawable/default_ptr_flip"
    ptr:ptrAnimationStyle="flip"
    ptr:ptrHeaderBackground="@android:color/transparent"
    ptr:ptrHeaderTextColor="#919191"
     />
</RelativeLayout>

核心代码如下,这里用到了Android当中不少的知识点,其中主要的是异步任务处理、自定义适配器。

package com.example.pulltorefresh;

import java.util.ArrayList;

import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class MainActivity extends Activity {

    private PullToRefreshListView pullToRefreshView;
    private ArrayList<Music> musics=new ArrayList<Music>();
    private DataAdapter dataAdapter;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        pullToRefreshView = (PullToRefreshListView) findViewById(R.id.pull_to_refresh_listview);
        pullToRefreshView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2() {

            @Override
            public void onPullDownToRefresh(PullToRefreshBase refreshView) {
                // TODO 自动生成的方法存根
                new DataAsyncTask(MainActivity.this).execute();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase refreshView) {
                // TODO 自动生成的方法存根
                new DataAsyncTask(MainActivity.this).execute();
            }
        });
        pullToRefreshView.setMode(PullToRefreshBase.Mode.BOTH);
        ILoadingLayout startLabels = pullToRefreshView    
                .getLoadingLayoutProxy(true, false);    
        startLabels.setPullLabel("下拉刷新...");// 刚下拉时,显示的提示    
        startLabels.setRefreshingLabel("正在载入...");// 刷新时    
        startLabels.setReleaseLabel("放开刷新...");// 下来达到一定距离时,显示的提示    
    
        ILoadingLayout endLabels = pullToRefreshView.getLoadingLayoutProxy(    
                false, true);    
        endLabels.setPullLabel("上拉刷新...");// 刚下拉时,显示的提示    
        endLabels.setRefreshingLabel("正在载入...");// 刷新时    
        endLabels.setReleaseLabel("放开刷新...");// 下来达到一定距离时,显示的提示    
        loadData();
        dataAdapter=new DataAdapter(this, musics);
        pullToRefreshView.setAdapter(dataAdapter);
    }


    @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;
    }
    
    private int count;
    private void loadData(){
        for(int i=0;i<10;i++){
            musics.add(new Music("歌曲-"+count,"歌手-"+count));
            count++;
        }
    }
    static class DataAsyncTask extends AsyncTask<Void, Void, String>{
        private MainActivity mainActivity;
        public DataAsyncTask(MainActivity mainActivity){
            this.mainActivity=mainActivity;
        }

        @Override
        protected String doInBackground(Void... arg0) {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            mainActivity.loadData();
            return "success";
        }
        
        @Override
        protected void onPostExecute(String result) {
            // TODO 自动生成的方法存根
            super.onPostExecute(result);
            if("success".equals(result)){
                mainActivity.dataAdapter.notifyDataSetChanged();
                mainActivity.pullToRefreshView.onRefreshComplete();
                
            }
        }
    }
    
    static class DataAdapter extends BaseAdapter{

        private Context ctx;
        private ArrayList<Music> musics;
        


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • android studio导入PullToRefresh教程
  • Android pulltorefresh使用,androidpulltorefresh

相关文章

  • 2017-05-26类似微信朋友圈,点击+号图片,可以加图片,信朋友圈
  • 2017-05-26一次奇怪的MySQL复制故障
  • 2017-05-26详细Android Studio + NDK范例
  • 2017-05-26App更新之dialog数字进度条,appdialog进度条
  • 2017-05-26Android中button点击后字体的变色效果,androidbutton
  • 2017-05-26填坑实录 Android Studio 利用 ADB WIFI 插件实现真机无线调试,androidadb
  • 2017-05-26android:异步任务asyncTask介绍及异步任务下载图片(带进度条)
  • 2017-05-26项目总结手机号+短信验证码登录,手机号验证码
  • 2017-05-26根据布局自动生成代码实例化的网站,布局自动生成
  • 2017-05-26Android设计模式之单例模式的七种写法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android APP漏洞挖掘
    • Android学习资料整理
    • 安卓第五天笔记-对话框,安卓第五天笔记
    • android SwipeRefresh下拉刷新
    • Android 实现闪屏页和右上角的倒计时跳转,android跳转
    • Android--BroadcastReceiver应用详解
    • Android程序版本更新--通知栏更新下载安装,android程序版本
    • 硅谷新闻8--TabLayout替换ViewPagerIndicator,tablayoutindicator
    • 【新建项目&amp;使用viewPager】实现一个Android电子书阅读APP,新建项目定义
    • 配置文件智能的备份和还原

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有