Realizar tanto el clic normal y clic largo en el botón

Tengo un solo botón nombrado como CheckIn. Tenga una mirada en mi código.

checkIn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(HomeSafeActivity.this, "Normal Press", Toast.LENGTH_LONG).show(); }); checkIn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { Toast.makeText(HomeSafeActivity.this, "Long press", Toast.LENGTH_LONG).show(); return false; } }); 

Ahora, cuando presione el botón normal, el mensaje se mostrará como Normal. Cuando presione el botón, el mensaje mostrará tanto tiempo como prensa normal. Lo que quiero que cuando me largo presionar el botón sólo el evento de prensa larga debe activado no el evento de prensa normal. ¿Cómo puedo lograr esto?

6 Solutions collect form web for “Realizar tanto el clic normal y clic largo en el botón”

Tengo la solución de mi Question.Return el verdadero en lugar de false.Just ver a continuación: –

  checkIn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { Toast.makeText(HomeSafeActivity.this, "Long preess", Toast.LENGTH_LONG).show(); return true; } }); 

onLongClick() : devuelve un booleano para indicar si ha consumido el evento y no debe llevarse más. Es decir, return true para indicar que usted ha manejado el acontecimiento y debe parar aquí; return false si no lo ha manejado y / o el evento debe continuar con cualquier otro on-click listeners .

Debe devolver true en caso de un clic largo

Ejemplo:

  btnBookingMasterCab.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { if(preCheckoutInfo!=null){ rlChooseCard.setVisibility(View.VISIBLE); } return true; } }); 

Aquí hay una solución (esto funcionará si (cuando se activan ambos), primero se dispara la prensa larga, luego la prensa normal):

 int clickFlag = 0; checkIn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(clickFlag != 2){ Toast.makeText(HomeSafeActivity.this, "Normal Press", Toast.LENGTH_SHORT).show(); clickFlag = 0; } }); checkIn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { Toast.makeText(HomeSafeActivity.this, "Long press", Toast.LENGTH_SHORT).show(); clickFlag = 2; return false; } }); } 

Prueba esto; deberia de funcionar.

 checkIn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { checkIn.setOnClickListener(null); Toast.makeText(HomeSafeActivity.this, "Long press", Toast.LENGTH_LONG).show(); return false; } }); 

Pruebe con android: onclick = "btnPressed" en lugar de OnClickListener y use OnLongClickListener no es un problema en mi código de prueba

  • ¿Es razonable tener un botón "Atrás" en una aplicación de Android?
  • Android: cómo hacer que no haya espacio entre el botón 2 en un lineal horizontallayout
  • El botón onClick no funciona
  • Lanzamiento del botón de captura en Android
  • Vibrar cuando se mantiene pulsado el botón
  • Un OnClickHandler para varios botones
  • Cómo ocultar softkeyboad cuando se inicia la actividad en android?
  • Android 5: botón debajo de la barra de softnavigation (herencia de Showcaseview)
  • Cómo la aplicación de Facebook implementa el botón flotante arrastrable
  • Android button textAppearance
  • Iniciar un fragmento de diálogo en el botón de clic de un adaptador de base personalizado> getView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.