2011-10-27 8 views
4

私は別のリストビューにリストビューからドラッグ&ドロップを実装しています、私はそれがListView.In私の見解により、第4の画像までの罰金働いて、1つのアプリを作成したアプリ上で使用して、どのように実装して、別のリストビューにListViewのドロップ?

How to Drag drop Listview item to another Listview

をここにサンプルアプリを得ました最初のListViewから2番目の位置をドラッグし、2番目のListViewにドロップすると、同じ画像が表示されます。下にスクロールすると、位置は4,5,6になります(デフォルトでは0,1,2,3を意味します) 、7.if 6位をドラッグすると2位になります。助けてください

答えて

0

あなたはforループを使うべきです。リストの番号を数えて、それぞれのcountでチェックしてください。ループのidが同じであれば、別のイメージを直接取得します格納された場所。

public boolean onTouchEvent(MotionEvent ev) { 
     // TODO Auto-generated method stub 
     final int action = ev.getAction(); 
     final int x = (int) ev.getX(); 
     final int y = (int) ev.getY(); 

     if (action == MotionEvent.ACTION_DOWN && x < this.getWidth()/4) { 
      mDragMode = true; 
     } 

     if (!mDragMode) 
      return super.onTouchEvent(ev); 

     switch (action) { 
      case MotionEvent.ACTION_DOWN: 
       mStartPosition = pointToPosition(x,y); 
       if (mStartPosition != INVALID_POSITION) { 
        int mItemPosition = mStartPosition - getFirstVisiblePosition(); 
        mDragPointOffset = y - getChildAt(mItemPosition).getTop(); 
        mDragPointOffset -= ((int)ev.getRawY()) - y; 
        startDrag(mItemPosition,y); 
        drag(0,y);// replace 0 with x if desired 
       } 
       break; 
      case MotionEvent.ACTION_MOVE: 
       drag(0,y);// replace 0 with x if desired 
       break; 
      case MotionEvent.ACTION_CANCEL: 
      case MotionEvent.ACTION_UP: 
      default: 
       mDragMode = false; 
       mEndPosition = pointToPosition(x,y); 
       stopDrag(mStartPosition - getFirstVisiblePosition()); 
       if (mDropListener != null && mStartPosition != INVALID_POSITION && mEndPosition != INVALID_POSITION) 
        mDropListener.onDrop(mStartPosition, mEndPosition); 
       break; 
     } 
     return true; 
    } 

これは、uはあなたがそれをプッシュするのx & Yを指定するドラッグ法にanother.Andに一箇所からのコードをプッシュするのに役立ちます。

関連する問題