在android中引用第三方插件pulltorefresh

1.第一步:如果你没有pulltorefresh这个插件的包你可以去网上下一个,我这里推荐大家一个网址:www.github.com 进去之后直接搜pull to refresh就可以直接下载了,然后就会存到你的硬件中,记住位置。然后解压,然后打开,找到library文件夹打开,然后赋值路径。

2.第二步:打开androidstudio,然后点击左上角的File,new 一个Import Module,之后在source directory输入你之前赋值的路径。于是他会自动在下面出现一个module name=library。这里介意你最好改了,因为许多插件的名字都有可能叫library。之后就确定一下。

3.第三步:然后,在你需要的module里面引入它,点击你的module,又击,然后在点击 open module setting,然后点击上端的dependencies,然后右上角有个绿色的加号,点击一下,然后出现三个选项,选择module dependency,然后选择你之前引入进来的library。

4.第四步:等加载之后,就会报错,因为library的sdk版本和你androidstudio的sdk版本不一样,所以点击你module中的build.gradle

compileSdkVersion 25
buildToolsVersion "25.0.2"
将这两个代码复制,然后打开你引入进来library的build.gradle,然后将它这两句代码替换成你module中的这两句,之后再try again加载一下。

5:第五步:之后你便可以开始写了,
<com.handmark.pulltorefresh.library.PullToRefreshListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/ptlv_pull"
    >
只有把那个插件引入进来之后才能写这个下拉刷新的listview
 
 
最后,当你运行的时候 又会报个错误,而且它会自动帮你打开一个类(PulltorefreshWebView),之后你找到报错的地方,将FloatMath改成Math,并将前面它返回的类型的值float改成double就可以了。











然后再给大家分享一下 我在java类中实现下拉刷新的源码;

分享一下思路:

1.先根据id找到pulltorefreshListview控件。

2.定一个集合或数组存放数据,也就是你一打开这个界面,就会出来的数据

3.在设置一个适配器,这里我设置了一个简单的arrayAdapter的适配器

4.给控件添加适配器,

5.再给控件设置下拉事件

6.写一个类,继承AsyncTask,这个类则是用来更新数据(doInBackground)和更新界面(onPostExecute)的 

7.在下拉事件中引用你所写的那个类。

public class MainActivity extends AppCompatActivity {

    private PullToRefreshListView ptlv_pull;
    private List<String> data;
    private ArrayAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ptlv_pull= (PullToRefreshListView) findViewById(R.id.ptlv_pull);

        //定义资料:
        data=new ArrayList<>();
        for (int i = 0; i <10 ; i++) {
            data.add("你是傻逼吗?"+i);
        }

        //设置适配器:
      adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,data);
        //给控件添加适配器:
        ptlv_pull.setAdapter(adapter);

        //给ptlv_pull设置下拉事件:
        ptlv_pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                   new MyTask().execute();

            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {

            }
        });



    }

    class MyTask extends AsyncTask{

        //在后台获取数据 (内部有线程机制)
        @Override
        protected Object doInBackground(Object[] params) {
            for (int i = 0; i <3 ; i++) {
                data.add(0,"你不是傻逼哦"+i);
            }
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return null;
        }

        //更新UI
        @Override
        protected void onPostExecute(Object o) {
            super.onPostExecute(o);

            //通知适配器数据发生改变
            adapter.notifyDataSetChanged();

            //通知ListView已经拉完了
           ptlv_pull.onRefreshComplete();
        }
    }






}





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值