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 } });
- Android: crea un servicio que se ejecuta una vez al día
- Publicar en Facebook Fan página a través de la aplicación
- Android Studio no puede encontrar el compilador java
- Java lanza NotSerializableException después de agregar su propia interfaz
- ¿Qué debo usar aparte del paquete `javax.net.sampled` para manejar la transmisión de audio?
- Android java, obtener más uso de memoria permitido
- Android: acelerar la transición de elementos compartidos entre actividades
- ¿Por qué run () es llamado una sola vez?
- ¿El hecho de tener activos no utilizados en la carpeta de activos afectan al tamaño de la aplicación?
- Android: error de heap importando ShowcaseView como proyecto, ClassNotFound si como JAR, Fuera de memoria
- Error al inflar el fragmento de clase
- Java.lang.IllegalArgumentException: La ruta no debe estar vacía en Picasso
- Problemas de conversión de entero en cadena
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(); } });
- en Android google maps api v2 para 4.0, muestre las rutas de la ubicación actual a lat lat largo
- El valor predeterminado de Android Numberpicker no viene