Xlistview最最基础操作

本文介绍如何使用 XListView 控件实现 Android 应用中的上下拉刷新功能。通过实例展示了如何配置 XListView,并实现了基本的刷新和加载更多的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XlistView 作为基础的上下拉空间


首先 需要导入三个XlistView类

xml文件包

在Studio中把导入的工程 import 对应的R包更改好以后,开始操作最简单的上下拉

这是布局文件

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

    <com.example.xlistview.Utils.XListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listview"
        ></com.example.xlistview.Utils.XListView>
</RelativeLayout>


代码文件  注意:该类需实现 XListView.IXListViewListener  会重写上拉,下拉的方法

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.xlistview.Utils.XListView;

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

public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{

    private XListView lv;
    private List<String> list;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            myAdapter.notifyDataSetChanged();

            close();

        }
    };
    private MyAdapter myAdapter;


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


        //初始化数据
        initData();

        //初始化组件
        lv = (XListView) findViewById(R.id.listview);

        ;// 设置让它上拉,FALSE为不让上拉,便不加载更多数据
        lv.setPullLoadEnable(true);
        //设置可以下拉
        lv.setPullRefreshEnable(true);

        //设置适配器
        lv.setXListViewListener(this);
        myAdapter = new MyAdapter();
        lv.setAdapter(myAdapter);
    }

    public  void close(){
        //停止加载更多
        lv.stopLoadMore();
        lv.stopRefresh();

        lv.setRefreshTime("2017:8:10");
    }
    /*
       下拉刷新时会调用此方法
    */
    @Override
    public void onRefresh() {

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {

                list.add(0,"你看,范冰冰");

                handler.sendEmptyMessage(0);
            }
        },3000);
    }

    /**
     * 加载更多时会调用此方法
     */
    @Override
    public void onLoadMore() {

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                list.add("又是范冰冰,你开心不");
                handler.sendEmptyMessage(0);
            }
        },3000);
    }

    /*
        下拉刷新时会调用此方法
     */


    //适配器
    class  MyAdapter extends BaseAdapter{

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

        @Override
        public Object 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) {

            TextView tv = new TextView(MainActivity.this);
            tv.setTextSize(25);
            tv.setText(list.get(position));
            return tv;
        }
    }

    //初始化组件
    private void initData() {
        list = new ArrayList<>();

        for (int i=0;i<10;i++){
            list.add("栓"+i);
        }
    }
}

   最最最基础的代码,勿喷哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值