这个问题应该相当简单(我认为),但我不知道如何正确地做到这一点。我对编程还很陌生。
我有一个继承自EditText的简单类。有两个问题:
这是我的自定义编辑文本演示类:
namespace HelloWorld_Android {
class DemoEditText : EditText {
public DemoEditText (Context context, IAttributeSet attrs) : base(context, attrs) {
this.Touch += HandleTouch;
}
void HandleTouch (object sender, TouchEventArgs e) {
Console.WriteLine ("Fired");
}
}
}
活动:
namespace HelloWorld_Android {
[Activity (Label = "HelloWorld_Android", MainLauncher = true)]
public class MainActivity : Activity {
protected override void OnCreate (Bundle bundle) {
base.OnCreate (bundle);
SetContentView(Resource.Layout.Main);
}
}
}
我的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<HelloWorld_Android.DemoEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/test"
/>
</LinearLayout>
答案 0 :(得分:1)
根据this documentation,View.Touch
用于触摸事件。
我会询问调用你的处理程序的TouchEventArgs
以查看它正在接收的具体手势。我至少会收到两个电话 - 一个用于触摸手势的开始和结束。
答案 1 :(得分:0)
此问题已修复,但未更改任何代码。我认为这是由于xamarin.android 4.12中的某种错误,截至目前我正在使用Xamarin.Android 4.12.6。我在WebConnectionStream.WriteRequestAsync(在4.12.6中已修复)中遇到了其他(无关)问题,也许出现了其他错误导致内存泄漏(不删除触摸委托)或其他问题,不确定。