可拖拽的listView

    技术2022-05-19  24

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

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

     

    view plain copy to clipboard print ? package com.and.DragListview;  import java.util.ArrayList;  import java.util.List;  import android.app.ListActivity;  import android.content.Context;  import android.os.Bundle;  import android.view.LayoutInflater;  import android.view.View;  import android.view.ViewGroup;  import android.widget.BaseAdapter;  import android.widget.ImageView;  import android.widget.TextView;  public class DragListview extends ListActivity {         MyAdapter adapter;      TouchInterceptor list;      List<String> arrayText;            @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);                    list = (TouchInterceptor) getListView();//(TouchInterceptor)findViewById(android.R.id.list);          getText();                    adapter = new MyAdapter(this);          setListAdapter(adapter);                   list.setDropListener(mDropListener);       //   list.setRemoveListener(mRemoveListener);            }      public void getText(){          arrayText = new ArrayList<String>();          arrayText.add("传奇");          arrayText.add("红豆");          arrayText.add("流年");          arrayText.add("棋子");      }            //交换listview的数据      private TouchInterceptor.DropListener mDropListener =          new TouchInterceptor.DropListener() {          public void drop(int from, int to) {              String item = arrayText.get(from);              arrayText.remove(item);//.remove(from);              arrayText.add(to, item);              adapter.notifyDataSetChanged();          }      };            private TouchInterceptor.RemoveListener mRemoveListener =          new TouchInterceptor.RemoveListener() {          public void remove(int which) {                    }      };            class MyAdapter extends BaseAdapter{          private LayoutInflater mInflater;          Context mContext;          public MyAdapter(Context c){              mInflater = LayoutInflater.from(c);          }          public int getCount() {                       return arrayText.size();          }          public Object getItem(int arg0) {              return arrayText.get(arg0);          }          public long getItemId(int arg0) {              return arg0;          }          public View getView(int arg0, View contentView, ViewGroup arg2) {              ImageView img;              TextView text;              if(contentView==null){                  contentView = mInflater.inflate(R.layout.list_layout, null);                   //contentView = mInflater.inflate(R.layout.list_layout,null);              }              img = (ImageView)contentView.findViewById(R.id.img);              img.setBackgroundResource(R.drawable.icon);              text = (TextView)contentView.findViewById(R.id.text);              text.setText(arrayText.get(arg0).toString());                            return contentView;          }                }  }  

     


    最新回复(0)