Android下拉刷新列表库PullToRefresh的使用

实现效果:

Android下拉刷新列表库PullToRefresh的使用_第1张图片

添加依赖:

implementation 'com.github.userswlwork:pull-to-refresh:1.0.0'

View布局:




    

    

Control层代码:

public class MainActivity extends AppCompatActivity {

    private PullToRefreshListView lv;
    private ArrayAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv=findViewById(R.id.lv);
        List data=new ArrayList<>();//初始化数据集合
        for (int i=0;i<6;i++) {
            data.add("饥渴学院");
            data.add("计算机科学与技术");
            data.add("山东学院");
            data.add("信息工程系");
        }
        //设置适配器
        adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,data);
        lv.setAdapter(adapter);  //部署适配器

        //列表的下拉刷新事件监听
        lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener() {
            @SuppressLint("StaticFieldLeak")
            @Override
            public void onRefresh(PullToRefreshBase pullToRefreshBase) {

               //AsyncTask 实际上是一个帮助类,可以让我们很简单的从子线程切换到主线程,去更新UI界面
                new AsyncTask() {

                    //doInBackground这个方法所有代码都会在一个子线程中执行,所有的耗时任务都在这处理
                    @Override
                    protected Void doInBackground(Void... params) {
                        try {
                            Thread.sleep(3000);//刷新时间3秒
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        return null;
                    }

                    //主线程中修改UI数据,更新UI
                    @Override
                    protected void onPostExecute(Void aVoid) {
                        super.onPostExecute(aVoid);
                        //刷新之后添加的数据
                        adapter.addAll("7704宿舍", "哈哈哈哈哈哈哈哈哈哈哈");
                        Toast.makeText(MainActivity.this,"刷新成功",Toast.LENGTH_SHORT).show();
                        //通知lv数据已经加载完
                        lv.onRefreshComplete();
                    }
                }.execute();
            }
        });
    }
}

 

你可能感兴趣的:(Android,Native,基础)