在android中引用第三方插件pulltorefresh

来源:互联网 发布:java职业培训中心 编辑:程序博客网 时间:2024/06/08 02:35

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 25buildToolsVersion "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();        }    }}





原创粉丝点击