Android - OnTouchEvent

 
Vista:
Imágen de perfil de Francisco
Val: 357
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

OnTouchEvent

Publicado por Francisco (314 intervenciones) el 27/04/2019 11:44:45
Tengo cinco cantidades tipo integer en un arraylist

Recorro el arraylist con un for y cargo en un LinearLayout cinco botones que es el contenidi del arraylist y
los agrego a un Linear layout y a cada boton le agrego un escuchador de eventos OntouchListener.

Lo que quiero hacer es cuando paso el dedo por los botones me de la informacion que tiene el boton.getText();


el caso es que funciona si clico me muestra la informacion en un textView ,pero si sigo desplazando el dedo
sin levantarlo,no me detecta cuando sale del boton primero ,ni me muestra la informacion del segundo boton;

Estoo se puede hacer;

Si levanto el dedo y clico funciona pero si sigo moviendolo sin levantarlo no muestra el evento
del puntero del primero y ha entrado en el segundo boton sin detectar los cambios.

Aqui os dejo el codigo.
gracias anticipadas...






for(int i=0;i<lista.size();i ++){


Button button = new Button(this);
button.setBackgroundColor(Color.GREEN);
button.setTextColor(Color.BLACK);
//Aqui le paso la informacion al boton del contenido de lista.get(i);
button.setText(""+lista.get(i));







button.setOnTouchListener(this);

//Aqui agrego todos los botones a un LinearLayout
lPanel.addView(button);

}





@Override
public boolean onTouch(View view, MotionEvent event) {
int x= (int)event.getRawX();
int y = (int)event.getRawY();

switch (event.getAction()){


case MotionEvent.ACTION_MOVE:
//texto.setText(""+ x+ " "+ y);
return true;
// break;
case MotionEvent.ACTION_UP:
//texto.setText("");
return true;
//break;

case MotionEvent.ACTION_DOWN:
texto.setText(""+ ((Button)view).getText().toString());
return true;
// break;


case MotionEvent.ACTION_CANCEL:
texto.setText("he hecho click");
break;
// break;

case (MotionEvent.ACTION_OUTSIDE):
texto.setText("La accion ha sido fuera del elemento de la pantalla");
return true;

//break;


}

return false;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder