zoukankan      html  css  js  c++  java
  • ListView实现Item上下拖动交换位置 并且实现下拉刷新 上拉加载更多

    ListView实现Item上下拖动交换位置  并且实现下拉刷新  上拉加载更多

    package com.example.ListViewDragItem;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.widget.ArrayAdapter;
    import com.example.ListViewDragItem.refreshlist.CustomDragListView;
    import com.example.ListViewDragItem.refreshlist.XListView;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class MyActivity extends Activity implements CustomDragListView.OnChangeListener, XListView.IXListViewListener {
        private CustomDragListView customDragListView;
        private ArrayAdapter adapter;
    
        private List<String> list = new ArrayList<String>();
    
        /**
         * Called when the activity is first created.
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            InitList();
            customDragListView = (CustomDragListView) findViewById(R.id.customDragListView);
            adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
            customDragListView.setAdapter(adapter);
            customDragListView.setOnChangeListener(this);
            customDragListView.setXListViewListener(this);
            customDragListView.setPullLoadEnable(true);
    //        customDragListView.setPullRefreshEnable(true);
        }
    
        private void InitList() {
            for (int i = 1; i <= 50; i++) {
                list.add("zhangSan" + i + i + i + i + i + i);
            }
        }
    
        /**
         * item交换事件
         */
        @Override
        public void onMove(int from, int to) {
            int headerCount = customDragListView.getHeaderViewsCount();
            if (to - headerCount < list.size()
                    && from - headerCount < list.size()) {
                Collections.swap(list, from - headerCount, to - headerCount);
                adapter.notifyDataSetChanged();
            }
        }
    
        @Override
        public void onUp() {
    
        }
    
        /**
         * listView刷新事件
         */
        @Override
        public void onRefresh() {
            customDragListView.stopRefresh();
        }
    
        /**
         * listView加载更多事件
         */
        @Override
        public void onLoadMore() {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    customDragListView.stopLoadMore();
                }
            }, 1000);
        }
    }

    震动权限:

     <uses-permission android:name="android.permission.VIBRATE"/>

    源码下载:ListVIewDragItem

  • 相关阅读:
    [置顶] win7 && win8 下安装SqlServer 2008出现错误无法将对象实例化的问题
    [置顶] sizeof()和c++中变量们
    [置顶] sql2008 附加数据库 .mdf 出现错误 解决方案
    [置顶] 漂亮的 tab 样式
    [置顶] 认识指针和指针变量
    [置顶] SqlHelper类
    [置顶] 第一次使用事物 利用线性表
    [置顶] 设计模式之单例模式 (Design patterns of the The singleton pattern)c#
    [置顶] ListBox控件的数据绑定
    RedHat 6.0(64位)如何使用CentOS YUM源更新的方法
  • 原文地址:https://www.cnblogs.com/blogzhangwei/p/4682752.html
Copyright © 2011-2022 走看看