2012-02-13 10 views

答えて

0
private DragListener mDragListener = 
        new DragListener() { 

        int backgroundColor =#f000;// add color of ur choice 
        int defaultBackgroundColor; 

         public void onDrag(int x, int y, ListView listView) { 
          // TODO Auto-generated method stub 
         } 

         public void onStartDrag(View itemView) { 
          itemView.setVisibility(View.INVISIBLE); 
          defaultBackgroundColor = itemView.getDrawingCacheBackgroundColor(); 
          itemView.setBackgroundColor(backgroundColor); 
          ImageView iv = (ImageView)itemView.findViewById(R.id.imageView1); 
          if (iv != null) iv.setVisibility(View.INVISIBLE); 
         } 

         public void onStopDrag(View itemView) { 
          itemView.setVisibility(View.VISIBLE); 
          itemView.setBackgroundColor(defaultBackgroundColor); 
          ImageView iv = (ImageView)itemView.findViewById(R.id.imageView1); 
          if (iv != null) iv.setVisibility(View.VISIBLE); 
         } 

       }; 

インターフェースを作成し、書き込みをタッチイベントに使用し、リストビューから子IDを取る賢明uは

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; 
} 

をドロップして削除することができますウルListActivity class.Likeにそのオブジェクトを呼び出しますリストビューからメソッドをドラッグします。

関連する問題