Поэтому я пытаюсь протестировать добавление события click к Button
в файле .axml, который используется моей основной Activity
. Я прошел через множество других тем и следовал приведенному коду как мог. Однако я получаю следующее исключение при запуске моего кода.
Java.Lang.IllegalStateException: Could not find method testClick(View)
in a parent or ancestor Context for android:onClick attribute
defined on view class android.widget.Button with id 'login'
В Main.axml
<Button
android:text="Login"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:onClick="testClick"
android:id="@+id/login" />
В Main.cs
public class Main : Activity
{
protected override void OnCreate(Android.OS.Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
}
public void testClick(View view)
{
//Show alert saying clicked...
}
}
Я пропускаю какую-то конфигурацию или включаю, чтобы заставить это работать?
Вы всегда можете сделать это:
Button button1 = FindViewById<Button>(Resource.Id. login);
button1.Click += delegate => {
//Show alert saying clicked...
};
Если вы не хотите использовать этот способ, вы должны сначала Export
свой метод, как показано ниже, чтобы посмотреть на этот ответ:
[Export("testClick")]
public void testClick(View view)
{
//Show alert saying clicked...
}
Если это не Mono.Android.Export.dll
добавьте ссылку на Mono.Android.Export.dll
а затем в свою Activity
вставьте это
[Java.Interop.Export("testClick")]
public void testClick(View view)
{
//Show alert saying clicked...
}
Пожалуйста, попробуйте после наследования интерфейса View.IOnclicklistener:
public class Main: AppcompatActivity, View.IonClickListener
Это поможет реализовать метод onclick интерфейса, как вы дали:
public void testClick(View view)
{
//Show alert saying clicked...
}