Comment définir le Bouton gestionnaire d'événement onClick de manière déclarative?
Tout d'abord, je m'excuse car je suis sûr que cela a été demandé avant, mais je ne peux pas trouver une réponse:
Je suis à l'aide de Xamarin pour écrire une application Android. Comment puis-je configurer un gestionnaire d'événement de manière déclarative?
Actuellement, j'ai dans mon axml un bouton:
Button
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/btnOne"
android:textSize="30dp"
android:text="1"
android:onClick="btnOneClick"
Que je tiens à feu de la méthode btnOneClick dans mon Activité.cs:
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace AndroidMacScanner
{
[Activity(Label = "MacScanner", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
//int count = 1;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
//Set our view from the "main" layout resource
SetContentView(Resource.Layout.Login);
//Get our button from the layout resource,
//and attach an event to it
//Button button = FindViewById<Button>(Resource.Id.MyButton);
//button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
//EditText editText = FindViewById<EditText>(Resource.Id.txtPin);
//editText.InputType = InputTypes;
}
public void btnOneClick(View v)
{
if (1 == 1) { };
}
}
}
Mais quand je clique sur le bouton je reçois un message me disant que l'application a cessé de fonctionner, sans autre détail.
EDIT: Ajouté mon code complet. Le xml ne contient rien d'autre que ce qui est pertinent.
Le logcat affiche l'erreur suivante:
03-28 15:03:31.575 E/AndroidRuntime( 5178): java.lang.IllegalStateException: impossible de trouver une méthode btnOneClick () dans la classe d'activité androidmacscanner.Activity1 pour onClick gestionnaire sur la vue de la classe android.widget de.Bouton avec l'id 'btnOne'
Donc il ne peut pas trouver la méthode de gestionnaire d'événement...
Quel est le problème?
Acclamations,
James
- post le stacktrace
- Poster votre code et logcat. BTW, Ce à quoi vous attendre une fois que le bouton s'enclenche? Pour passer à une autre activité ou ?
- C'est tout le code jusqu'à présent - je suis juste de prendre mon premier bébé étapes dans Android :-). L'événement n'est pas déclenché, donc pas de point d'arrêt peut être touché et donc je ne vois pas comment poster quoi que ce soit utile à l'aide de la stacktace? J'écris ceci à l'aide de Visual Studio, par la manière.
- Travaillé sur la façon d'utiliser le logcat et posté la ligne correspondante ci-dessus. Merci pour l'astuce!
Vous devez vous connecter pour publier un commentaire.
Vous devez spécifier
Ajouter l'attribut [Java.Interop.L'exportation] à votre gestionnaire de clic méthode:
Il existe quelques façons dont vous pouvez gérer l'événement de clic sur un point de vue:
XML Méthode(celle de votre post):
Activité OnClickListener //Non compris dans le onClick en xml
Ou vous pouvez en créer un à la volée pour le bouton dans le code
Pour ne voir que "l'application a cessé de fonctionner" sur un émulateur ou un périphérique réel, c'est ce qui est connu comme une ANR (l'Application ne Répond Pas) d'erreur qui se produit lorsque l'dalivk jvm tue l'application du processus. Si votre développement avec Eclipse ou Android Studio, vous aurez envie de vérifier vos journaux de chat pour un tracé détaillé de l'erreur. Cela vous aidera à traquer les erreurs dans le futur.