Cómo utilizar setOnTouchListener en C # (Xamarin)
Hola chicos puede darme un ejemplo de setOnTouchListener en C #? He intentado de esta manera, pero traigo algunos errores.
Button1.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View arg0, MotionEvent arg1) { x.Text = "1"; } });
- Xamarin-Android Mvvmcross - Tocar en la aplicación de inicio de notificación recibida con salpicaduras o llevar al frente
- Cómo zipalign el archivo apk en Windows
- JsonSerializationException 'No se puede encontrar un constructor' en Xamarin.Android
- ¿Cómo funciona Xamarin iOS y Android?
- No encontró la clase "mono.android.app.Application"
- Cómo agregar un fragmento a la backstack en MvvmCross 4.0?
- Desactivar ViewRootImpl en Android Log?
- Xamarin.Forms MasterDetailPage con TabbedView - Tab Título que aparece al navegar a través del menú de hamburguesas
- Agregar dinámicamente vistas a un recycleview.viewholder
- Combine Xamarin y React Native en una aplicación
- Xamarin vs iOS nativo y Android
- Xamarin aplicaciones son grandes por qué y pueden ser más pequeños
- Pasar datos entre los modelos de vista MvvmCross
Usted o bien a. Utilice el evento Touch
:
button1.Touch += (s, e) => { var handled = false; if (e.Event.Action == MotionEventActions.Down) { // do stuff handled = true; } else if (e.Event.Action == MotionEventActions.Up) { // do other stuff handled = true; } e.Handled = handled; };
O puede implementar explícitamente la interfaz IOnTouchListener
(C # no tiene clases anónimas). Tenga en cuenta que al implementar interfaces Java, también necesita heredar de Java.Lang.Object
ya que necesitamos un identificador para el lado Java de la historia (esto obviamente no es necesario cuando usamos el evento Touch
).
public class MyTouchListener : Java.Lang.Object , View.IOnTouchListener { public bool OnTouch(View v, MotionEvent e) { if (e.Action == MotionEventActions.Down) { // do stuff return true; } if (e.Action == MotionEventActions.Up) { // do other stuff return true; } return false; } }
A continuación, establézcalo con:
button1.SetOnTouchListener(new MyTouchListener());
Tenga en cuenta que utilizando este último enfoque también necesita que maneje pasar de referencias a objetos que desea modificar en su clase OnTouchListener
, esto no es necesario con el evento C #.
private Button Button1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Button1.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { //do stuff } else if (event.getAction() == MotionEvent.ACTION_UP) { // do stuff } return false; } }); }
A juzgar por otra pregunta que usted ha preguntado estoy adivinando que necesita para mover el oyente onTouch en el método onCreate
- Mi BroadcastReceiver no está recibiendo la intención BOOT_COMPLETED después de mis botas N1
- Diferencia entre onClickListener y onItemClickListener