如何在 C# (Xamarin) 中使用 setOnTouchListener?

2024-04-23

你能给我一个 C# 中 setOnTouchListener 的例子吗?

我尝试过这样但我带来了一些错误。

Button1.setOnTouchListener(new View.OnTouchListener()
    {
        public boolean onTouch(View arg0, MotionEvent arg1)
        {
            x.Text = "1";
        }
    });

你要么a.使用Touch event:

button1.Touch += (s, e) =>
{
    var handled = false;
    if (e.Event.Action == MotionEventActions.Down)
    {
        // do stuff
        handled = true;
    }
    else if (e.Event.Action == MotionEventActions.Up)
    {
        // do other stuff
        handled = true;
    }

    e.Handled = handled;
};

或者你可以明确地实现IOnTouchListener接口(C# 没有匿名类)。注意,在实现Java接口时,还需要继承自Java.Lang.Object因为我们需要一个 Java 方面的句柄(当我们使用Touch event).

public class MyTouchListener 
    : Java.Lang.Object
    , View.IOnTouchListener
{
    public bool OnTouch(View v, MotionEvent e)
    {
        if (e.Action == MotionEventActions.Down)
        {
            // do stuff
            return true;
        }
        if (e.Action == MotionEventActions.Up)
        {
            // do other stuff
            return true;
        }

        return false;
    }
}

然后设置它:

button1.SetOnTouchListener(new MyTouchListener());

请注意,使用后一种方法还需要您处理对要在您的程序中修改的对象的引用的传递。OnTouchListener类,C# 事件不需要这个。

EDIT:作为旁注,如果您使用Touch活动或任何其他活动,请记住成为一个好公民,当您不再有兴趣接收该活动时,请取消该活动。最坏的情况是,如果您忘记取消挂钩事件,则会泄漏内存,因为实例无法清理。

因此,在第一个示例中,不要使用匿名方法:

button1.Touch += OnButtonTouched;

并记住将其解开:

button1.Touch -= OnButtonTouched;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# (Xamarin) 中使用 setOnTouchListener? 的相关文章

随机推荐

  • Symfony2功能测试:直接传递表单数据

    我正在使用 phpunit 来运行功能测试 但我在使用某些表单时遇到问题 问题是 phpunit 不支持 JS 而我有一个带有动态填充选择框的表单 需要 jQuery 所以我需要直接传递表单数据 书 给出了以下例子 Directly sub
  • geom_tile单色为0,然后是色标

    我想生成一个热图 其中调色板为绿色到红色 但 0 值为白色 我开始了基于因子具有不同高填充颜色的 geom tile 热图 https stackoverflow com questions 10232525 geom tile heatm
  • 使用 PHP 上传 DOC 或 PDF

    我可以很好地上传图像 但是当我将类型从 image jpg image gif 更改为 application msword 和 application pdf 时 它不起作用 这是我的代码 完全相同的代码适用于图像 但对于上传文档和 pd
  • 使用 Ardulink 命令 Arduino Uno

    我试图在我的 JAVA 应用程序中使用 Ardulink 库来命令我的 Arduino Uno 但没有成功 我不知道我错过了什么 这是我的代码 Link link Link getDefaultInstance boolean connec
  • Prometheus - 监控容器中的命令输出

    我需要监控 eks 集群中具有 nfs 挂载路径的许多旧容器 使用 nfs client helm 图表映射容器 i 中的 nfs 目录 我需要监视我的安装路径何时由于某种原因丢失 而我发现做到这一点的唯一方法是在容器中执行命令 bin b
  • List.empty 与 List() 与 new List()

    有什么区别List empty List and new List 我什么时候应该使用哪个 首先 new List 不会工作 因为List类是抽象的 另外两个选项定义如下the List object http www scala lang
  • Android Studio:“创建新 AVD”窗口中禁用“确定”按钮

    我下载并安装了最新的 Android Studio 版本 0 8 6 测试版 但在尝试创建新的 Android 虚拟设备时遇到了困难 我尝试按照以下步骤操作 https developer android com training wear
  • 在 SwiftUI (5) 和 Xcode (12.4) 中实现 AdMob 插页式广告

    我正在努力在我的应用程序中实现插页式广告 但对 AdMob 提供的文档和新的 SwiftUI 应用程序结构遇到了一些困惑 这里是app swift文件 显示我已经实现了 GoogleMobileAds 并在didFinishLaunchin
  • 计算每年的天数

    我有两个约会 begin lt as Date 2007 05 20 end lt as Date 2010 06 13 怎样计算一年有多少天 输出可能应该是这样的 year days 2007 226 2008 366 2009 365
  • Soundcloud:上传曲目后如何立即知道声音云曲目ID?

    http developers soundcloud com docs api http developers soundcloud com docs api 当我查看 API 文档时 我发现 SC stream tracks 293 fu
  • 共享一个类的离散匿名方法?

    我在玩埃里克 利珀特的Ref
  • GAE 30 个子查询限制的解决方法

    我正在编写一个新闻应用程序 我想让我的用户从包含数十个 约 60 个 来源 卫报 泰晤士报 的列表中选择他们最喜欢的新闻来源 我有一个包含索引属性 源 的新闻实体 我正在寻找一种方法 可以让我绕过 App Engine 施加的 30 个子查
  • 两个平面之间的交线

    如何找到两个平面之间的交线 我知道数学思想 并且我做了平面法向量之间的叉积 但如何以编程方式从结果向量中获取行 平面的方程为ax by cz d 0 其中 a b c 是平面的法线 d 是到原点的距离 这意味着满足该方程的每个点 x y z
  • 如何使用 rgdal 包将 NAD 83 坐标转换为纬度和经度?

    我有坐标 所有这些都应该位于 DC 但我不知道如何将它们从 NAD 83 转换为 R 中的纬度和经度 我正在使用spTransform rgdal 包中的函数并收到有关不合格数据的错误 library rgdal nad83 coords
  • Django 1.7迁移找不到应用程序

    我正在为应用程序创建数据迁移Notification 在这里我使用模型的参考 Manager 来自应用程序accounts Manager apps get model accounts Manager 它抛出错误 self code fr
  • 如何获取多个范围并将多个范围的值设置到另一个电子表格

    我想从范围 shUserForm Get Range B14 O100 中记录的内容将所有数据发送到另一个电子表格 我已经实现的是 当我单击或运行脚本时 我只从 B14 014 获取 1 个数据 而不是我希望每个列将其读取为 getRang
  • 更改 datagridview 中图像按钮列中的图像

    只是想知道是否有人曾经设法找到一种方法 模板字段中的 datagridview 图像按钮列 根据不同的行在不同的行上显示不同的图像 行中的某些数据元素 我们的应用程序需要显示一系列 对帐户栏收取的费用将少于 500 500 至 1000 或
  • 如何获取 matplotlib 轴的当前限制?

    Given a matplotlib轴 如何找到其当前的最小和最大限制 例如 正如之前可能设置的那样ax set xscale log xlim xmin xmax ax get xlim ymin ymax ax get ylim
  • 如何使用故事板将两个不同的选项卡栏图标连接到同一视图控制器?

    我的 iPad 应用程序中有一个标签栏控制器 包含 6 个项目 当您点击其中两个图标时 它们将指向同一个视图控制器 该视图控制器有一个将显示的项目列表 它会根据您点击的选项卡栏图标而略有变化 我如何用故事板来设置它 可以将关系两次拖动到同一
  • 如何在 C# (Xamarin) 中使用 setOnTouchListener?

    你能给我一个 C 中 setOnTouchListener 的例子吗 我尝试过这样但我带来了一些错误 Button1 setOnTouchListener new View OnTouchListener public boolean on