studio personalizar icono busqueda botones boton barra bar agregar android

icono - personalizar toolbar android studio



Android: largo clic en un botón-> realizar acciones (4)

Inicialmente, cuando implementé un longClick y un clic para realizar dos eventos separados, el problema al que me enfrenté fue que, cuando tenía un longclick, la aplicación también realizaba la acción que se realizaría con un simple clic. La solución que me di cuenta fue cambiar el tipo de retorno de longClick a verdadero, que normalmente es falso de manera predeterminada. Cámbialo y funciona perfectamente.

Quiero usar el mismo botón para realizar 2 métodos diferentes. Un método cuando el usuario hace clic en él y un segundo método (diferente) cuando el usuario LONG hace clic en él.

Utilizo esto para el solo clic corto (que funciona muy bien):

Button downSelected = (Button) findViewById(R.id.downSelected); downSelected.setOnClickListener(new OnClickListener() { public void onClick(View v) { method(); } } });

Intenté agregar longClickListener pero no funcionó.

Apreciar cualquier idea sobre cómo resolver esto.

¡Gracias!



Lo he hecho antes, acabo de usar:

down.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { // TODO Auto-generated method stub return true; } });

Por documentación:

public void setOnLongClickListener (View.OnLongClickListener l)

Desde: API Nivel 1 Registre una devolución de llamada que se invocará cuando se haga clic y se mantenga presionada esta vista. Si esta vista no se puede hacer clic mucho, se puede hacer clic mucho.

Tenga en cuenta que se requiere devolver un booleano, esto debería funcionar.


Para que ambas funciones funcionen para una imagen en la que se puede hacer clic que responderá tanto a los clics cortos como a los largos, intenté lo siguiente que parece funcionar perfectamente:

image = (ImageView) findViewById(R.id.imageViewCompass); image.setOnClickListener(new OnClickListener() { public void onClick(View v) { shortclick(); } }); image.setOnLongClickListener(new View.OnLongClickListener() { public boolean onLongClick(View v) { longclick(); return true; } });

// Entonces las funciones que se llaman:

public void shortclick() { Toast.makeText(this, "Why did you do that? That hurts!!!", Toast.LENGTH_LONG).show(); } public void longclick() { Toast.makeText(this, "Why did you do that? That REALLY hurts!!!", Toast.LENGTH_LONG).show(); }

Parece que la manera fácil de declarar el artículo en XML como seleccionable y luego definir una función para llamar al hacer clic solo se aplica a los clics cortos: debe tener un oyente para diferenciar entre los clics cortos y largos.