2017-06-19 169 views
1

我有一個可以正常工作的onClick事件的項目列表,但我無法獲得onDrag事件發生。onDrag不能與ListView一起工作

我班如下:

public class ActListadoCategorias extends AppCompatActivity { 
 
... 
 

 
private void init() { 
 
m_lvwCategorias = (ListView) findViewById(R.id.lvwCategorias); 
 
     
 
m_lvwCategorias.setAdapter(m_itemCategoria); 
 
     m_lvwCategorias.setOnItemClickListener(onItemCategoriaListViewOnClickListener); 
 
     m_lvwCategorias.setOnDragListener(onItemCategoriaListViewOnDragListener); 
 
... 
 

 
@Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.act_listado_categorias); 
 

 
     init(); 
 
     getCategorias(); 
 
    } 
 
... 
 

 
private AdapterView.OnItemClickListener onItemCategoriaListViewOnClickListener = new AdapterView.OnItemClickListener() { 
 
     public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
 
      try { 
 
       Categoria categoria = (Categoria)m_lvwCategorias.getItemAtPosition(position); 
 
       Intent actCategoriaIntent = new Intent(m_actListadoCategorias, ActCategoria.class); 
 
       actCategoriaIntent.putExtra("Activity", TipoDato.TipoActividad.ACTUALIZACION); 
 
       actCategoriaIntent.putExtra("Object", categoria); 
 
       startActivityForResult(actCategoriaIntent, 0); 
 
      } 
 
      catch(Exception ex){ 
 
       Mensaje.mostrar("Error", m_actListadoCategorias); 
 

 
      } 
 
     } 
 
    }; 
 

 
    private AdapterView.OnDragListener onItemCategoriaListViewOnDragListener = new AdapterView.OnDragListener() { 
 
     @Override 
 
     public boolean onDrag(View v, DragEvent event) { 
 

 
      final int action = event.getAction(); 
 

 
      switch (action) { 
 
       case MotionEvent.ACTION_MOVE: { 
 
        
 
        } 
 
        return true; 
 
       } 
 
      } 
 
      return false; 
 
     } 
 

 
    }; 
 

 
}   
 
    

我把一個斷點onItemCategoriaListViewOnDragListener的內部,但是從列表中拖動任何項目不產生相關的事件。

歡迎任何想法或建議。

感謝

回答

0

LongClick失蹤激活將

m_lvwCategorias.setOnItemLongClickListener(onItemCategoriaListViewOnItemLongClickListener); 
 
m_lvwCategorias.setOnDragListener(onItemCategoriaListViewOnDragListener); 
 
private AdapterView.OnItemLongClickListener onItemCategoriaListViewOnItemLongClickListener = new AdapterView.OnItemLongClickListener(){ 
 
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
 
     View.DragShadowBuilder shadowBuilder = new 
 
     View.DragShadowBuilder(view); 
 
     m_lvwCategorias.startDrag(null,shadowBuilder,m_lvwCategorias.getItemAtPosition(position),0); 
 
     return true; 
 
    } 
 
}; 
 

 
     private AdapterView.OnDragListener onItemCategoriaListViewOnDragListener = new AdapterView.OnDragListener() { 
 
      @Override 
 
      public boolean onDrag(View v, DragEvent event) { 
 

 
       final int action = event.getAction(); 
 

 
       switch (action) { 
 
        case MotionEvent.ACTION_MOVE: 
 
         .... 
 
        break; 
 
        } 
 
       } 
 
}