2011-10-31 36 views
0

喜歡iPhone刷卡功能,我們如何實現的Android一樣,我已經加在getView方法輕掃代碼的適配器類輕掃在列表視圖改變Add按鈕來刪除

View.OnTouchListener gestureListener = new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 

      Toast.makeText(context, "on long press...........", 
         Toast.LENGTH_SHORT).show(); 
      return gestureDetector.onTouchEvent(event); 
     } 
     }; 
     listview.setOnTouchListener(gestureListener); 

和類是

class MyGestureDetector extends SimpleOnGestureListener { 
     @Override 
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
       float velocityY) { 
    try { 
      if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
       return true; 
     // right to left swipe 
     if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE 
         && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 

       } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE 
         && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
        // viewFlipper.setInAnimation(slideRightIn); 
        // viewFlipper.setOutAnimation(slideRightOut); 
        // viewFlipper.showPrevious(); 
       } 
      } catch (Exception e) { 
       // nothing 
      } 
      return true; 
     } 

     @Override 
     public boolean onSingleTapConfirmed(MotionEvent e) { 
      // TODO Auto-generated method stub 
      Log.e("Item Click", "Item Click"); 
      return super.onSingleTapConfirmed(e); 
     } 

     public void onLongPress(MotionEvent e) { 
      // TODO Auto-generated method stub 
      Toast.makeText(context, "on long press...........", 
        Toast.LENGTH_SHORT).show(); 

     } 

     public void onShowPress(MotionEvent e) { 
      // TODO Auto-generated method stub 
      Toast.makeText(context, "on show press...........", 
        Toast.LENGTH_SHORT).show(); 
     } 
    } 

所以請幫助我如何顯示刪除按鈕,而不是刷卡後添加按鈕。

回答

0

u必須獲得/創建這裏刪除按鈕,必須處理的onClick()的這個事件...並設置佈局必須傳遞x和實際的y位置應該顯示...

case MotionEvent.ACTION_UP: { 
     upX = event.getX(); 
     upY = event.getY(); 

     float deltaX = downX - upX; 
     float deltaY = downY - upY; 

     // horizontal swipe detection 
     if (Math.abs(deltaX) > MIN_DISTANCE) { 
     // left or right 
     if (deltaX < 0) { 
      mSwipeDetected = Action.LR; 
      return false; 
     } 
     if (deltaX > 0) { 
      mSwipeDetected = Action.RL; 
      deleteRow = (Button) v 
       .findViewById(R.id.btnNoteListItemDelete); 
      deleteRow.setVisibility(0); 
      deleteRow.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       System.out.println("DELETING THIS ROW"); 
       deleteRow.setVisibility(View.GONE); 
      } 
      }); 
      return true; 
     } 
     } 

     mSwipeDetected = Action.Click; 
     return false; 
    } 
    } 
    return false; 
    } 
相關問題