2011-10-27 3 views
4

내가 다른 ListView에로의 ListView에서 드래그 앤 드롭을 구현하고, 나는 ListView.In 내보기에 의하여의 4 이미지까지 잘 작동하고, 하나의 응용 프로그램을 만든 응용 프로그램 위에 사용구현 방법 ListView에서 다른 Listview로 끌어서 놓기?

How to Drag drop Listview item to another Listview

여기에 샘플 응용 프로그램을 가지고 기본 ListView 첫 번째 ListView에서 두 번째 위치를 드래그하고 두 번째 ListView에 놓으면 세 번째 위치 (0,1,2,3을 의미)까지 표시됩니다. 아래로 스크롤하면 같은 위치에 이미지가 표시됩니다. 위치는 4,5,6입니다. , 7. 여섯 번째 위치를 드래그하면 두 번째 위치가됩니다. 제발 도와주세요

답변

0

당신은 for 루프를 사용해야합니다. 목록에 번호의 수를주고 각각의 수로 확인하십시오. 루프의 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 한 위치에서의 코드를 추진하는 데 도움이 될 것입니다.