OnTouchEvent
Publicado por Francisco (358 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;
}
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


0