2013-11-12 5 views
2

Я создаю draggable editText, я использовал editText, чтобы пользователь мог изменить текст. Но теперь моя проблема в том, что я больше не могу редактировать текст, потому что он обнаруживает касание/перетаскивание текста.Как сделать EditText редактируемым после перетаскивания

Любое решение для этого?

private final class MyTouchListener implements OnTouchListener { 
    public boolean onTouch(View view, MotionEvent motionEvent) { 

     switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) 
     { 
      case MotionEvent.ACTION_DOWN: 
      ClipData data = ClipData.newPlainText("", ""); 
       DragShadowBuilder shadowBuilder = new DragShadowBuilder(view); 
       view.startDrag(data, shadowBuilder, view, 0); 
       view.setVisibility(View.VISIBLE); 
      break; 
      case MotionEvent.ACTION_MOVE: 
       break; 
      case MotionEvent.ACTION_UP: 
       break; 

      case MotionEvent.ACTION_HOVER_EXIT: 
        break; 
     } 
    return true; 
    } 

} 

и у меня есть сопротивление слушателя

class MyDragListener implements OnDragListener { 
    @Override 
     public boolean onDrag(View v, DragEvent event) { 
     switch (event.getAction()) { 
     case DragEvent.ACTION_DRAG_STARTED: 
      break; 
     case DragEvent.ACTION_DRAG_ENTERED: 
      break; 
     case DragEvent.ACTION_DRAG_EXITED:   
      break; 
     case DragEvent.ACTION_DROP: 
     View view = (View) event.getLocalState(); 
     paramsBlock = new RelativeLayout.LayoutParams(view.getWidth(), view.getWidth()); 
      paramsBlock.leftMargin = (int) event.getX() - (view.getWidth()/2);//- ((imageView.getWidth()/9)/2); 
      paramsBlock.topMargin = (int) event.getY() -(view.getHeight()/2);//-((imageView.getWidth()/9)/2); 

      view.setLayoutParams(paramsBlock);    
      break; 
     case DragEvent.ACTION_DRAG_ENDED: 
      default: 
      break; 
     } 
     return true; 
     } 
    } 

Можно ли использовать onLongClick Слушатель?

ответ

2

Вы можете использовать onLongClickListener, чтобы начать перетаскивание. Это позволит вам редактировать поле, потому что по умолчанию нажмите или коснись слушатель элемента управления не будет переопределен

Попробуйте что-нибудь подобное для дрэг инициации

OnLongClickListener longClickListener = new OnLongClickListener() { 

    @Override 
    public boolean onLongClick(View view) { 
     ClipData data = ClipData.newPlainText("", ""); 
     DragShadowBuilder shadowBuilder = new DragShadowBuilder(view); 
     view.startDrag(data, shadowBuilder, view, 0); 
     view.setVisibility(View.VISIBLE); 

     return true; 
    } 
}; 

Надеется, что это помогает

+0

Спасибо! Он работает сейчас :) – MMakati

+0

Рад, что я мог бы помочь – Neil

+0

Можете ли вы помочь мне решить эту проблему? http://stackoverflow.com/questions/19922299/click-zone-of-edittext-is-getting-bigger-after-dragging – MMakati

Смежные вопросы