XlistView_只加载文字_下拉刷新加载第一页_上拉加载下一页

效果图

上拉加载第一个页面

 

下拉加载下一个页面

 

 

主界面布局

 

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/text1"
        android:layout_width="match_parent"
        android:layout_height="80dp" />

</android.support.constraint.ConstraintLayout>

 

主界面

 

package com.example.lianxi08;

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;

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

import me.maxwin.view.XListView;


public class MainActivity extends AppCompatActivity {

    private XListView mListView;
    private MyBaseAdapter adapter;
    private int mPage =1;

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

        mListView = findViewById( R.id.list_view );

        adapter = new MyBaseAdapter( MainActivity.this );
        mListView.setAdapter( adapter );

        initData();

        //允许上拉刷新下拉加载
        mListView.setPullRefreshEnable( true );
        mListView.setPullLoadEnable( true );
        //listview监听

        mListView.setXListViewListener( new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                mPage=1;
                initData();
            }

            @Override
            public void onLoadMore() {
                initData();
                mPage++;
            }
        } );

    }
    @SuppressLint("StaticFieldLeak")
    private void initData() {
        new AsyncTask<Void, Void, List<String>>() {
            @Override
            protected List<String> doInBackground(Void... voids) {
                SystemClock.sleep( 3000 );
                String time = new Date().toLocaleString();
                List<String> list = new ArrayList<>(  );
                for (int i = 0; i <10 ; i++) {
                     list.add( time+"第"+mPage+"页"+i );
                }
                return list;
            }

            @Override
            protected void onPostExecute(List<String> strings) {
                if (mPage==1){
                    adapter.setList( strings );

                }else {
                    adapter.addList( strings );
                }
                mListView.stopLoadMore();
                mListView.stopRefresh();
            }
        }.execute(  );
    }
}

adapter刷新

 

package com.example.lianxi08;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

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

public class MyBaseAdapter extends BaseAdapter {

    private List<String> list;
    private Context context;

    public MyBaseAdapter(Context context) {
        this.context = context;
        list = new ArrayList<>(  );
    }

    public void setList(List<String> list1) {
        list.clear();
        list.addAll( list1);
        notifyDataSetChanged();
    }
    public void addList(List<String> list1) {
        list.addAll( list1);
        notifyDataSetChanged();
    }



    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public String getItem(int position) {
        return list.get( position );
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder;
        if (convertView==null){
            convertView = LayoutInflater.from( context ).inflate( R.layout.item,parent,false );
            holder= new ViewHolder(convertView);
        }else {
            holder= (ViewHolder) convertView.getTag();
        }
            holder.setData(getItem( position ));
        return convertView;
    }
    class ViewHolder{
        TextView textView;

        public ViewHolder(View convertView) {
            textView =convertView.findViewById( R.id.text1 );
            convertView.setTag(this);
        }


        public void setData(String item) {
            textView.setText( item );
        }
    }


}

 

导入module

 

导入xlistview

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值