专栏首页ASP.NET MVC5 后台权限管理系统.Net 转战 Android 4.4 日常笔记(10)--PullToRefresh下拉刷新使用

.Net 转战 Android 4.4 日常笔记(10)--PullToRefresh下拉刷新使用

这里我们使用一个开源的库叫:PullToRefresh

开源地址:https://github.com/chenyoca/pull-to-refresh

下载地址:https://github.com/chenyoca/pull-to-refresh/archive/master.zip

解压代码之后通过ecplise导入到项目里面

导入之后可能会出现库路径引用错误

在项目右键,依次对库进行修正

运行主Activity

这时就可以看到效果了!接下来我们自己创建一个项目来使用这个控件

新建一个项目UsingPullToRefresh

创建之后要对库进行引用,这有点像C#工程一样,要对程序集进行引用(3个库都要引用)

引用完之后会报出一个jar版本不同的错误

所以我们要让库和我们的工程的版本一致

拷贝libs下的android-support-v4.jar

分别复制到刚引用的3个库中替换libs下的android-support-v4.jar

修改一下MianActivity.java和activity_main.xml的代码

package com.example.usingpulltorefresh;

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

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

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.os.Build;

public class MainActivity extends Activity {

    private PullToRefreshListView lv;
    private ArrayAdapter<String> adapter;
    private List<String> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //查找到控件
        lv = (PullToRefreshListView) findViewById(R.id.lv);
        list= new ArrayList<String>();
        list.add("香蕉");
        list.add("苹果");
        
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
        lv.setAdapter(adapter);
        
        lv.setOnRefreshListener(new OnRefreshListener<ListView>(){
            @Override
            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                // TODO Auto-generated method stub
                new AsyncTask<Void,Void,Void>(){
                    @Override
                    protected Void doInBackground(Void... arg0) {
                        // TODO Auto-generated method stub
                        try {
                            Thread.sleep(2000);
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        return null;
                    }
                    
                    protected void onPostExecute(Void result){
                        adapter.addAll("西瓜","橙子","火龙果");
                        lv.onRefreshComplete();
                    }
                    
                }.execute();
            }
        });
    }

    @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;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    

}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.usingpulltorefresh.MainActivity"
    tools:ignore="MergeRootFrame" >
    <com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/lv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    </com.handmark.pulltorefresh.library.PullToRefreshListView>
</LinearLayout>

OK,可以运行了!

直接下载源码:http://pan.baidu.com/s/1mgKBkrI

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DotNet 资源大全中文版(Awesome最新版)

    Awesome系列的.Net资源整理。awesome-dotnet是由quozd发起和维护。内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、I...

    张果
  • 浅析.NET的反射特性

         在.net框架体系内,反射特性较多的应用到。反射的相关定义分为两种。     自然解释:射是一种自然现象,表现为受刺激物对刺激物的逆反应;这...

    彭泽0902
  • .net源码分析 - ConcurrentDictionary<TKey, TValue>

    List源码分析 Dictionary源码分析 ConcurrentDictionary源码分析 继上篇Dictionary源码分析,上篇讲过的在这里不会再...

    用户1147588
  • VB.NET中图像处理的一些技巧以及其和C#图像处理的差距。

     早期的时候我使用的开发工具是VB6,VB6做图像处理的速度在我的软件Imageshop中有所体现,还是算可以的。目前,我已经改用C#来研究图像算法,C#中有...

    用户1138785
  • .net下灰度模式图像在创建Graphics时出现:无法从带有索引像素格式的图像创建graphics对象 问题的解决方案。

      在.net下,如果你加载了一副8位的灰度图像,然后想向其中绘制一些线条、或者填充一些矩形、椭圆等,都需要通过Grahpics.FromImage创建Grah...

    用户1138785
  • .net源码分析 – Dictionary<TKey, TValue>

    接上篇:.net源码分析 – List<T> Dictionary<TKey, TValue>源码地址:https://github.com/dotnet/co...

    用户1147588
  • Caused by: java.net.ConnectException: Call From master/192.168.199.130 to master:9000 failed on conn

    1:安装好hive,准备启动的时候出现下面的错误(由于hive是基于Hadoop的,所以必须先将你的集群启动起来,我就是没有启动集群,直接启动hive导致的错误...

    别先生
  • Quartz.NET实现作业调度

    一、Quartz.NET介绍 Quartz.NET是一个强大、开源、轻量的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,...

    张果
  • DotNet中几种常用的加密算法

          在.NET项目中,我们较多的使用到加密这个操作。因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要。现在提供几种常用的加...

    彭泽0902
  • .net源码分析 – List<T>

    通过分析源码可以更好理解List<T>的工作方式,帮助我们写出更稳定的代码。 List<T>源码地址: https://github.com/dotnet/c...

    用户1147588

扫码关注云+社区

领取腾讯云代金券