`

可拖拽的listView

 
阅读更多

在packages/apps/Music/src/touchIncepter.java中

该类提供了listview的拖动效果,并提供接口,在程序接口中实现数据的交换即可。

  1. packagecom.and.DragListview;
  2. importjava.util.ArrayList;
  3. importjava.util.List;
  4. importandroid.app.ListActivity;
  5. importandroid.content.Context;
  6. importandroid.os.Bundle;
  7. importandroid.view.LayoutInflater;
  8. importandroid.view.View;
  9. importandroid.view.ViewGroup;
  10. importandroid.widget.BaseAdapter;
  11. importandroid.widget.ImageView;
  12. importandroid.widget.TextView;
  13. publicclassDragListviewextendsListActivity{
  14. MyAdapteradapter;
  15. TouchInterceptorlist;
  16. List<String>arrayText;
  17. @Override
  18. publicvoidonCreate(BundlesavedInstanceState){
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.main);
  21. list=(TouchInterceptor)getListView();//(TouchInterceptor)findViewById(android.R.id.list);
  22. getText();
  23. adapter=newMyAdapter(this);
  24. setListAdapter(adapter);
  25. list.setDropListener(mDropListener);
  26. //list.setRemoveListener(mRemoveListener);
  27. }
  28. publicvoidgetText(){
  29. arrayText=newArrayList<String>();
  30. arrayText.add("传奇");
  31. arrayText.add("红豆");
  32. arrayText.add("流年");
  33. arrayText.add("棋子");
  34. }
  35. //交换listview的数据
  36. privateTouchInterceptor.DropListenermDropListener=
  37. newTouchInterceptor.DropListener(){
  38. publicvoiddrop(intfrom,intto){
  39. Stringitem=arrayText.get(from);
  40. arrayText.remove(item);//.remove(from);
  41. arrayText.add(to,item);
  42. adapter.notifyDataSetChanged();
  43. }
  44. };
  45. privateTouchInterceptor.RemoveListenermRemoveListener=
  46. newTouchInterceptor.RemoveListener(){
  47. publicvoidremove(intwhich){
  48. }
  49. };
  50. classMyAdapterextendsBaseAdapter{
  51. privateLayoutInflatermInflater;
  52. ContextmContext;
  53. publicMyAdapter(Contextc){
  54. mInflater=LayoutInflater.from(c);
  55. }
  56. publicintgetCount(){
  57. returnarrayText.size();
  58. }
  59. publicObjectgetItem(intarg0){
  60. returnarrayText.get(arg0);
  61. }
  62. publiclonggetItemId(intarg0){
  63. returnarg0;
  64. }
  65. publicViewgetView(intarg0,ViewcontentView,ViewGrouparg2){
  66. ImageViewimg;
  67. TextViewtext;
  68. if(contentView==null){
  69. contentView=mInflater.inflate(R.layout.list_layout,null);
  70. //contentView=mInflater.inflate(R.layout.list_layout,null);
  71. }
  72. img=(ImageView)contentView.findViewById(R.id.img);
  73. img.setBackgroundResource(R.drawable.icon);
  74. text=(TextView)contentView.findViewById(R.id.text);
  75. text.setText(arrayText.get(arg0).toString());
  76. returncontentView;
  77. }
  78. }
  79. }

分享到:
评论

相关推荐

    可拖拽 listview

    在IT领域,特别是Android开发中,"可拖拽listview"是一种常见的用户界面设计,它允许用户通过拖放操作来改变listview中的元素顺序。这种交互方式极大地提升了用户体验,使得数据排序变得更加直观和便捷。本篇文章将...

    可拖动listview

    本篇将详细介绍如何在Android中实现一个可拖动的ListView,以及如何实现拖动分组管理。 首先,我们要了解Android中的Drag and Drop API,这是实现拖动功能的基础。Android SDK提供了一套完整的Drag and Drop API,...

    android 可拖动listview

    要实现“android可拖动listview”,我们需要关注以下几个关键知识点: 1. **Drag and Drop API**:Android系统提供了一套Drag and Drop API,用于处理拖放操作。我们需要在ListView的Item视图上添加OnTouchListener...

    可拖拽listview,可改变item位置

    为了实现这一功能,我们需要自定义一个可拖拽的ListView,使用户可以直观地通过手势调整列表中各个条目的顺序。这个"可拖拽listview,可改变item位置"的功能,正是我们要讨论的知识点。 首先,我们需要创建一个...

    可拖动listview 可存对象SharedPreferences

    在Android开发中,"可拖动listview"是一种常见的用户界面需求,允许用户通过触摸屏幕来重新排列ListView中的项目。这种交互方式提升了用户体验,尤其是在处理可排序数据集时。实现这个功能通常涉及到自定义适配器...

    可拖拽listview

    "可拖拽listview"是指一种增强型的ListView,它不仅具备基本的显示功能,还支持用户通过手势操作来拖动列表中的项(item)以实现排序或者删除等交互效果。这种功能为用户提供了一种直观、友好的操作体验,尤其适用于...

    开源的可拖拽listview的demo

    标题提到的“开源的可拖拽listview的demo”,实际上是一种增强型的ListView实现,它允许用户通过拖放操作来改变列表中的元素顺序,提供了一种直观且用户友好的交互体验。这种特性在各种应用场景中都非常有用,比如...

    android 可拖拽 ListView

    android的一个可拖拽ListView,是继承ListView实现的 我是在一个开源项目的基础上修改得来,原开源项目地址: https://github.com/fjtianxia/qianxudetianxia

    可拖拽ListView

    为了提供更丰富的交互体验,开发者通常需要自定义一个可拖拽的ListView。本文将深入探讨如何实现一个可拖拽的ListView,以及涉及的相关技术点。 首先,我们需要了解`AbsListView`的`onTouchEvent()`方法。这是处理...

    Android_可拖拽(拖动)换位置的ListView

    Eclipse版,如果你导入DemoSmartDragListView报错,那么就自己import并add那个appcompat_v7(如果你的项目目录下有这个工程的话就添加你自己的)就正常了,其实Demo报错并不影响,关键是demo里的jar包才是可拖拽控件...

    拖拽ListView

    拖拽ListView是一种在Android开发中实现用户交互效果的高级技巧,允许用户通过手势将列表项上下拖动,改变其在列表中的位置。这种功能常见于任务管理器、日程安排等应用,增强了用户体验,使数据排序更加直观和便捷...

    android listview item 拖动排序

    这个库允许用户通过手势拖动ListView中的item,以改变它们的顺序,从而提供了一种直观且用户友好的交互体验。 首先,我们需要在项目中引入`DragSortListView`库。如果你使用的是Gradle构建系统,可以在`build....

    仿QQ分组管理可拖动item的listview

    通过以上步骤,我们可以实现一个类似QQ分组管理的可拖动ListView。这个过程涵盖了Android UI设计、数据绑定、事件处理、动画制作等多个关键知识点,对于提升Android开发者的设计和编码能力非常有帮助。

    WPF 拖拽的实现(以listview为例)

    你需要确保拖动的数据对象包含ListView能够识别的数据格式。例如,如果ListView的数据源是`ObservableCollection&lt;MyItem&gt;`,则需要在`DragEnter`或`DragOver`事件中检查数据是否包含`MyItem`的实例。 4. **处理Drop...

    可上下拖动排序listview

    为了实现这个特性,开发者通常需要自定义ListView或者利用现有的开源库来实现可上下拖动排序的功能。标题中的"可上下拖动排序listview"就是针对这一需求的技术实现。 在描述中提到了一个源码和一篇博文链接,这通常...

    可以拖拽的ListView

    "可以拖拽的ListView"正是针对这一需求的一种扩展功能,它允许用户通过手势直接拖动ListView中的条目(Item)并重新排列它们的位置,提升了用户体验。 实现拖拽功能的关键在于对触摸事件的处理和ListView的适配器...

    可上下拖动ListView

    标题“可上下拖动ListView”指的是一种优化的ListView实现,允许用户通过手势上下拖动来浏览列表内容。这种功能通常被称为ListView的滚动优化或者触摸交互增强,使得用户体验更加流畅自然。 **一、ListView基本原理...

    可拖拽移动的listview

    "可拖拽移动的listview"是一个特殊实现,它扩展了ListView的基本功能,允许用户通过触摸和拖动来改变ListView中各item(列表项)的位置,提高了用户体验,特别是对于需要排序的数据列表。这种功能常见于应用中的任务...

Global site tag (gtag.js) - Google Analytics