一、准备。
1.需求问题
初步
:实现列表的拖拽效果(可参考Android源码下packages/apps/Music中的播放列表TouchInterceptor.java源码)。
(提前说明一下,本文不是完全按照Music中实现的,代码实现方式做了一些调整,去掉来很多无关的东西,方便大家理解,效果上也修改成了另外一种
个人认为是更简单更高效的一套。)
下面以初步实现为例子,逐步展开实现步骤。单纯Hibernate环境的搭建
2.搭建主界面DragListActivity.java和主布局drag_list_activity.xml。
public class DragListActivity extends Activity {
//数据列表
private List<String> list = null;
//数据适配器
private DragListAdapter adapter = null;
//存放分组标签
public static List<String> groupKey= new ArrayList<String>();
//分组一
private List<String> navList = new ArrayList<String>();
//分组二
private List<String> moreList = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.drag_list_activity);
//初始化样本数据
initData();
//后面会介绍DragListView
DragListView dragListView = (DragListView)findViewById(R.id.drag_list);
adapter = new DragListAdapter(this, list);
dragListView.setAdapter(adapter);
}
}
3.列表项的布局drag_list_item.xml。
<?xml version="1.0" encoding="utf-8"?>
<!-- 强调一点,使用相对布局 -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/drag_list_item_text"
android:layout_width="wrap_content"
android:layout_height="@dimen/drag_item_normal_height"
android:paddingLeft="5dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"/>
<ImageView android:id="@+id/drag_list_item_image"
android:src="@drawable/list_icon"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="@dimen/drag_item_normal_height"/>
</RelativeLayout>
4.准备样本数据。
我已经准备好了两组数据,在前面提到的initData()方法中执行初始化。
public void initData(){
//数据结果
list = new ArrayList<String>();
//groupKey存放的是分组标签
groupKey.add("A组");
groupKey.add("B组");
for(int i=0; i<5; i++){
navList.add("A选项"+i);
}
list.add("A组");
list.addAll(navList);
for(int i=0; i<8; i++){
moreList.add("B选项"+i);
}
list.add("B组");
list.addAll(moreList);
}
这里定义了分组标签集合groupKey后面分组的时候会用到。
5.自定义适配器类DragListAdapter。
接着我们搭建数据适配器,负责把list的数据填充到ListView中。TP-LINK路由TL-402系列VB重启路由代码
public static class DragListAdapter extends ArrayAdapter<String>{
public DragListAdapter(Context context, List<String> objects) {
super(context, 0, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if(view==null){
//加载列表项模板
view = LayoutInflater.from(getContext()).inflate(R.layout.drag_list_item, null);
}
TextView textView = (TextView)view.findViewById(R.id.drag_list_item_text);
textView.setText(getItem(position));
return view;
}
}
注意getItem(position)会取得数组适配器中position位置的T(这里是字符串),比较好用的一个方法。
分享到:
相关推荐
实现android 列表项 拖拽的效果.....原文: App列表之拖拽ListView源码(上) http://www.cnblogs.com/qianxudetianxia/archive/2011/06/12/2068761.html App列表之拖拽ListView源码(下) ...
本文实例讲述了Android开发实现可拖动排序的ListView功能。分享给大家供大家参考,具体如下: 一、上图 二、简述 1、需要实现的效果是长按右侧可拖动部分布局实现列表项的拖动排序 2、当点击列表项前面的单选按钮时...
Android应用源码开发Demo,主要用于毕业设计学习。
Android RecycleView+任意头尾布局+拖拽换位+拖拽删除demo Android sql练习合集 Android 仿12306 Android 优秀计步器 Android 体重计算源码 Android 使用Gallery_tabhost实现标签效果图源码 Android 例子源码根据CPU...
Android应用源码开发Demo,主要用于毕业设计学习。
强大的Android下拉刷新框支持下拉刷新、上拉加载、二级刷新、越界回弹、越界拖动,具有极强的扩展性,并集成了几十种炫酷的Header和 Footer。 支持横向刷新 支持多点触摸 支持淘宝二楼和二级刷新 支持嵌套多层的视图...
7.6 用好列表,做好程序——列表(ListView)介绍与实例 7.6.1 实例程序演示 7.6.2 实例编程实现 7.7 友好地互动交流——对话框(Dialog)介绍与实例 7.8 温馨的提醒——Toast和Notification应用 7.8.1 实例操作演示 ...
Android 小項目之---Iphone拖动图片特效 (附源码) 一个完整的新浪微博客户端android版OAuth认证示例 超爽的android抽屉效果 65个Android实例教程汇总 基本控件及基本动画效果dem 2011android面试题目及其答案大全...
listview 下拉刷新页面标题带着可往下拖动。
Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展ListView:下拉刷新的ListView。...
Android应用源码开发Demo,主要用于毕业设计学习。
介绍 学习Android开发的代码,基于AndroidStudio View_Demo是Android基础控件和布局,包括TextView,Edittext,ImageView,Button,RadioButton,Checkbox,ProgressBar和拖动条。 Adapter_Demo 是Adapter相关的代码...
包括卡片式列表(效果图1),Grid View列表(效果图2),列表item逐个淡入显示(效果图3),拖动列表item重新排序(效果图4),滑动删除列表item(效果图5),批量删除列表item(效果图6),展开列表item(效果图7)...
改变ListView列表项选中状态的背景颜色 102 可展开的列表组件 102 数据的存取 103 SharePreferences 6.1 103 文件的存储6.2 103 SQLite数据库6.4 103 ContentProvider、ContentResolver 6.5 105 Intent 106 用Intent...
自己积累和整理的一个安卓动画app,包括字体闪烁、抽屉式拖动、listview上拉刷新、翻页效果、二维码扫描、3d图片旋转、通讯录、fragment的滑动添加、android对HTML5的加载、view的开门动画、镜头由远及近的效果、...
Android项目源码本站发布的第5个动画源码集项目是一个安卓动画app,包括字体闪烁、抽屉式拖动、listview上拉刷新、翻页效果、二维码扫描、3d图片旋转、通讯录、fragment的滑动添加、android对HTML5的加载、view的...
点击下面下载链接可以进行单独下载Android相关Android中SQLite数据库基本用法实现Android登录,注册实现Android倒计时页面实现Android引导页实现Android上传图片实现Android ListView上拉加载,拖动刷新 Android新...
另外,因为Design库的推出大大方便我们编写带有Material风格的App,而ListView是不兼容这个库的,比如滑动的相互协调,只有RecyclerView能做到。 先看本篇内容的效果图: 效果内容主要有三部分: •长按点击...