ListView de Android ejecutando un evento en el elemento Liberación de clics largos

Estoy utilizando un OnItemClickListener y un OnItemLongClickListener en un ListView, ahora estoy buscando una manera de detectar la acción de liberación después de OnItemLongClick, ¿cuál es la mejor manera de lograr esto?

Echa un vistazo aquí () (principalmente aquí , deberías buscar ACTION_UP ):

public static final int ACTION_UP

Se agrega en el nivel 1 de API el valor getAction (): se ha liberado la clave.

Valor constante: 1 (0x00000001)

Algo como:

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.ACTION_UP) { // do something on ACTION_UP. return true; } return super.onKeyDown(keyCode, event); } 

Mientras que acepté @ respuesta g00dy encontré que esta solución se adapta mejor a mis necesidades, y mantiene mi código en un solo lugar.

dentro de la Actividad donde configuro la listaEstoy haciendo esto:

 MyOnLongClickListener myListener = new MyOnLongClickListener(this); listView.setOnItemLongClickListener(myListener); listView.setOnTouchListener(myListener.getReleaseListener()); 

toda la magia ocurre dentro de "MyOnLongClickListener":

 public class MyOnLongClickListener implements AdapterView.OnItemLongClickListener { private View.OnTouchListener mReleaseListener = new OnReleaseListener(); private boolean mEnabled = false; private Context mContext; public MyOnLongClickListener(Context context) { mContext = context; } @Override public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { Toast.makeText(mContext, "OnLongClick", Toast.LENGTH_SHORT).show(); mEnabled = true; return true; } /** * Returns a listener for the release event. * @return */ public View.OnTouchListener getReleaseListener() { return mReleaseListener; } /** * Listener for the Release event. */ private class OnReleaseListener implements View.OnTouchListener { @Override public boolean onTouch(View view, MotionEvent motionEvent) { if(motionEvent.getAction() == android.view.MotionEvent.ACTION_UP) { if(mEnabled) { Toast.makeText(mContext, "Release", Toast.LENGTH_SHORT).show(); /* Execute... */ mEnabled = false; return true; } } return false; } } } 
  • Creación de ImageButton de forma irregular con diferentes estados de clic
  • ¿Cómo detectar el número de dedos utilizados?
  • Android cuál es la diferencia entre getAction () y getActionMasked () en MotionEvent
  • Vista ScrollView con niños, cómo interceptar desplazamiento condicional
  • ¿Cómo puede detectar la vista que está pasando cuando realiza un evento táctil?
  • ¿Por qué es el evento touchstart después de hacer clic?
  • ¿Cómo crear un imagebutton de forma irregular donde la parte transparente de la imagen no se puede hacer clic?
  • Retraso de desplazamiento con GestureDetector onScroll
  • ¿Qué es una solución alternativa para Chrome para el comportamiento incorrecto de clientX y clientY de Android?
  • Cómo habilitar el zoom webview detrás del diseño lineal en android?
  • Android Listener para detectar cuando se está presionando la pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.