Mono for android,Xamarin点击事件的多种写法
(一)原本java的写法(相信很多是学过java的):
需要实现接口View.IOnClickListener,最好也继承类:Activity,因为View.IOnClickListener接口又继承了IJavaObject, IDisposable接口,所以还学要实现这两个接口里面的成员,而Activity已经实现可了这两个接口的成员,就不需要我们再写了,毕竟我们大部分只想重写View.IOnClickListener里面的OnClick函数。(如果自定义的类只是实现了View.IOnClickListener接口,不继承Activity,就需要实现另外2个接口的其他成员,在vs中选中接口,使用快捷键Alt+Shift+F10,可快速实现接口)
代码如下:
1 using System;
2 using Android.App;
3 using Android.Content;
4 using Android.Runtime;
5 using Android.Views;
6 using Android.Widget;
7 using Android.OS;
8
9 namespace App2
10 {
11 [Activity(Label = "App2", MainLauncher = true, Icon = "@drawable/icon")]
12
13
14 public class MainActivity : Activity, View.IOnClickListener
15 {
16 Button button;
17 public void OnClick(View v)
18 {
19 button.Text = string.Format("{0} clicks!", v.Id);
20 }
21 protected override void OnCreate(Bundle bundle)
22 {
23 base.OnCreate(bundle);
24
25 // Set our view from the "main" layout resource
26 SetContentView(Resource.Layout.Main);
27
28 // Get our button from the layout resource,
29 // and attach an event to it
30 button = FindViewById<Button>(Resource.Id.MyButton);
31 button.SetOnClickListener(this);
32
33 }
34 }
35 }
当然也可以自己定义一个类,实现接口,重写OnClick函数,然后button.SetOnClickListener(你自定义类的实例);
(二)接下来介绍C#的4种写法(其实大同小异)
1.第一种(创建模板就有的):
1 Button button = FindViewById<Button>(Resource.Id.MyButton);
2 button.Click += delegate { button.Text = string.Format ("{0} clicks!", count++);};
2.第二种
1 namespace App2
2 {
3 [Activity(Label = "App2", MainLauncher = true, Icon = "@drawable/icon")]
4
5
6 public class MainActivity : Activity, View.IOnClickListener
7 {
8 int count = 1;
9 Button button;
10
11 protected override void OnCreate(Bundle bundle)
12 {
13 base.OnCreate(bundle);
14
15 // Set our view from the "main" layout resource
16 SetContentView(Resource.Layout.Main);
17
18 // Get our button from the layout resource,
19 // and attach an event to it
20 button = FindViewById<Button>(Resource.Id.MyButton);
21 button.Click +=button_Click;
22
23 }
24
25 private void button_Click(object sender, EventArgs e)
26 {
27 button.Text = string.Format("{0} clicks!", count++);
28 }
29
30
31 }
32 }
3.第三种
1 public class MainActivity : Activity, View.IOnClickListener
2 {
3 int count = 1;
4 Button button;
5
6 protected override void OnCreate(Bundle bundle)
7 {
8 base.OnCreate(bundle);
9
10 // Set our view from the "main" layout resource
11 SetContentView(Resource.Layout.Main);
12
13 // Get our button from the layout resource,
14 // and attach an event to it
15 button = FindViewById<Button>(Resource.Id.MyButton);
16 button.Click += new EventHandler(button_Click);
17
18 }
19
20 private void button_Click(object sender, EventArgs e)
21 {
22 button.Text = string.Format("{0} clicks!", count++);
23 }
24
25
26 }
4.第四种
1 namespace App2
2 {
3 [Activity(Label = "App2", MainLauncher = true, Icon = "@drawable/icon")]
4
5
6 public class MainActivity : Activity, View.IOnClickListener
7 {
8 int count = 1;
9 Button button;
10
11 protected override void OnCreate(Bundle bundle)
12 {
13 base.OnCreate(bundle);
14
15 // Set our view from the "main" layout resource
16 SetContentView(Resource.Layout.Main);
17
18 // Get our button from the layout resource,
19 // and attach an event to it
20 button = FindViewById<Button>(Resource.Id.MyButton);
21 button.Click += (sender, e) =>{ button.Text = string.Format ("{0} clicks!", count++);};
22
23 }
24 }
25 }
Mono for android,Xamarin点击事件的多种写法的更多相关文章
- Android笔记——Button点击事件几种写法
Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...
- Android学习-----Button点击事件几种写法
Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...
- 【Android】按钮点击事件的常用写法
学习总结: 最近学习了Android点击事件的常用写法.点击事件会触发监听对象身上的回调,常用写法有以下四种: 方法一:使用匿名内部类. public class MainActivity exten ...
- Android journey3 @点击事件的4种写法
对于android布局中的控件,如Button等会有相应的点击事件去响应它所需要的功能,今天我们就以电话拨号器的代码说明下几种点击事件: package com.itheima.phone; impo ...
- [Android]Java中点击事件的四种写法
点击事件的必备条件:实现OnClickListener接口,重写onclick(View v)方法 以拨号简单案例为例,如下图效果: 逻辑流程: 获取点击对象,获取数据 给对象设置监听类 实现OnCl ...
- Android——自定义多击事件
一:使用场景 Android本身内置了点击.双击事件,但是某些时候,我们可能需要多击事件. 例如:某个秘密入口,为了避免用户误操作点击.双击到了触发开关而进入到不该被用户看到的页面,我们可以为入口控件 ...
- Android笔记---点击事件的四种写法
Android 点击事件的四种写法: 1. 以内部类的形式实现 OnClickListener 接口.定义点击事件 class MainActivity extents Activity{ // .. ...
- Android 为点击事件添加震动效果
Android 点击Button 实现震动效果 学习自:网络 Overview 在Android 的点击效果中,遇到震动效果的还是很多的. 接下来就让我们看一下如何实现震动效果. 所需要的权限 如果我 ...
- Android实现点击事件的4种方式
一.通过在activity_main.xml中,按钮button控件中添加onclick事件实现 在 activity_main.xml 对应的按钮Button中加入下面红色事件 <Butt ...
随机推荐
- RabbitMQ,想说爱你不容易(附详细安装教程)
前言 本文讲述的只是主要是 RabbitMQ 的入门知识,学习本文主要可以掌握以下知识点: MQ 的发展史 AMQP 协议 Rabbit MQ 的安装 Rabbit MQ 在 Java API 中的使 ...
- 无所不能的Embedding5 - skip-thought的兄弟们[Trim/CNN-LSTM/quick-thought]
这一章我们来聊聊skip-thought的三兄弟,它们在解决skip-thought遗留问题上做出了不同的尝试[Ref1-4], 以下paper可能没有给出最优的解决方案(对不同的NLP任务其实没有最 ...
- sqlite 数据库与mysql 数据库使用区别记录
遇到了就记点儿. 1.sqlite 中,设置外键关联,没啥用.只有mysql 中可用.
- Python Flask后端异步处理(一)
Flask是Python中有名的轻量级同步Web框架,但是在实际的开发中,可能会遇到需要长时间处理的任务,此时就需要使用异步的方式来实现,让长时间任务在后台运行,先将本次请求的相应状态返回给前端,不让 ...
- flask中migrate和scipt进行连用
近期态度消极了,并且还忙着学php,所以可能flask框架的进度不会像之前那么快了.但是还是要保证跟之前高的质量滴.
- 实验吧 Once more
0x1函数解析 ereg(): *用指定的模式搜索一个字符串中指定的字符串,如果匹配成功返回true,否则,则返回false. 搜索字母的字符是大小写敏感的. * 此函数存在两个漏洞: ①%00截断及 ...
- 深入理解C#中的异步(一)——APM模式EAP模式
深入理解C#中的异步(一)--APM模式EAP模式 目录 深入理解C#中的异步(一)--APM模式EAP模式 1 使用异步编程的原因 2 异步编程模式 2.1 APM模式 2.1.1 APM模式示例代 ...
- ADF 第二篇:使用UI创建ADF
用户可以通过UI来创建ADF,在UI中创建ADF时,用户不需要下载单独的IDE,而仅仅通过 Microsoft Edge 或者 Google Chrome浏览器.用户登录Azure Portal,选择 ...
- 如何实现OSM地图本地发布并自定义配图
目录 1.缘起 2.准备环境 2.1.安装linux系统 2.2.安装docker 2.3.安装Docker Compose 2.4.安装git 3.发布地图 3.1.拉取代码 3.2.测试网络 3. ...
- AcWing 407. 稳定的牛分配
大型补档计划 题目链接 题目看的有点晕(语文差) 总体来说就是让每头牛找个谷仓,不能超过容量,最小化每头牛在的谷仓在自己心目中排名的极差. 显然这个最优性问题不好做,但是转换为判定性问题这就是一个标准 ...