因此,我尝试测试将点击事件添加到我的主要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...
}
}
我是否缺少某些配置,或者包括使它正常工作?
答案 0 :(得分:1)
您总是可以这样做:
Button button1 = FindViewById<Button>(Resource.Id. login);
button1.Click += delegate => {
//Show alert saying clicked...
};
如果您不想使用这种方式,则应首先Export
,方法如下:answer:
[Export("testClick")]
public void testClick(View view)
{
//Show alert saying clicked...
}
如果这些都不起作用,请添加对Mono.Android.Export.dll
的引用,然后在您的Activity
中输入
[Java.Interop.Export("testClick")]
public void testClick(View view)
{
//Show alert saying clicked...
}
答案 1 :(得分:0)
请在继承接口View.IOnclicklistener后尝试:
public class Main: AppcompatActivity, View.IonClickListener
如您所给的那样,它有助于实现接口的onclick方法:
public void testClick(View view)
{
//Show alert saying clicked...
}