Android – ¿Puedo usar setOnLongClickListener y setOnClickListener para el mismo botón?

¿Puedo realmente usar estos setOnLongClickListener y setOnClickListener para el mismo botón? Porque si hago clic en el botón tanto longclick y clic normal se ejecutará y no sé por qué. ¿Puedo realmente hacer esto? Por favor, ayúdame:)

readDbButton.setOnLongClickListener( new View.OnLongClickListener() { public boolean onLongClick(View view) { //do something return false; } } ); readDbButton.setOnClickListener( new View.OnClickListener() { public void onClick(View view) { //Do something else } }); 

devuelva TRUE en su método onLongClick para que el evento se consuma.

  readDbButton.setOnLongClickListener( new View.OnLongClickListener() { public boolean onLongClick(View view) { //do something return true; } } ); 

Intente esta manera apropiada de poner en práctica esto

 public class MainActivity extends Activity { private Button button; private GestureDetector gestureDetector; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gestureDetector = new GestureDetector(this, new MyGestureDetector()); button = (Button) findViewById(R.id.button); button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent ev) { return gestureDetector.onTouchEvent(ev); } }); } private class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onSingleTapConfirmed(MotionEvent event) { Toast.makeText(MainActivity.this, "Single Tap", Toast.LENGTH_SHORT).show(); return true; } @Override public void onLongPress(MotionEvent e) { Toast.makeText(MainActivity.this, "Long Tap", Toast.LENGTH_SHORT).show(); } } } 

Tengo la solución de su Question.Return verdadero en lugar de falso en LongPressed.Just ver a continuación: –

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

Es decir, devuelva verdadero para indicar que usted ha manejado el acontecimiento y debe parar aquí; devuelve false si no lo ha manejado y / o el evento debe continuar a cualquier otro oyente en el clic

 readDbButton.setOnLongClickListener( new View.OnLongClickListener() { public boolean onLongClick(View view) { //do something Toast.makeText(getBaseContext(), "Long click", Toast.LENGTH_SHORT).show(); return true; } } ); readDbButton.setOnClickListener( new View.OnClickListener() { public void onClick(View view) { Toast.makeText(getBaseContext(), "onclick", Toast.LENGTH_SHORT).show(); } }); 
  • Filtro de Kalman y calidad de las variables de estado internas
  • Deshabilitar todas las vistas secundarias dentro del diseño
  • ¿Qué es una buena práctica de tratar con algunas excepciones HTTP de tiempo de ejecución?
  • Reflexión para acceder a funciones avanzadas de telefonía
  • Android OpenGL ES 2.0: El modelo de cubo no sólo está distorsionado (la perspectiva es incorrecta?), Sino también las caras se cargan incorrectamente (los vértices no son correctos?)
  • Android - Constructor de actividad vs onCreate
  • ¿Cómo cambiar el tamaño de la fuente y el color de la fuente de un archivo Java?
  • Android Eliminar el fondo de SeekBar
  • Añadir oyente a oyente conjunto
  • Android Studio: Crea un punto de interrupción de excepción bien comportado
  • Error de Android: no se puede realizar esta operación porque se ha cerrado el grupo de conexiones
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.