Кнопка onClick не привязана к методу в Activity

1

Поэтому я пытаюсь протестировать добавление события 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...
    }
}

Я пропускаю какую-то конфигурацию или включаю, чтобы заставить это работать?

Теги:
xamarin

2 ответа

1
Лучший ответ

Вы всегда можете сделать это:

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...
}
  • 0
    Спасибо! Экспорт его и добавление этого файла было именно проблемой!
  • 0
    Рад помочь: D
0

Пожалуйста, попробуйте после наследования интерфейса View.IOnclicklistener:

public class Main: AppcompatActivity, View.IonClickListener

Это поможет реализовать метод onclick интерфейса, как вы дали:

public void testClick(View view)
    {
        //Show alert saying clicked...
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню