`

可拖拽的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. }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics