在xamarin android单击事件是最基础的事情,看过菜鸟上的android教程时,java写的都是监听事件,为一个按钮,单选按钮、多选按钮的单击事件有三种,前面两种用的非常普遍,也很简易,我这里主要就是写一下xamarin android中的监听事件。

1.使用委托:

button.Click += delegate {

button.Text = string.Format (“{0} clicks!”, count++);

};

2:使用Lamda表达式 :

button.Click += (s, e) =>{

button.Text = string.Format (“{0} clicks!”, count++);

};

3.Xamarin android单选按钮监听事件:

namespace App914
{
[Activity(Label = "App914", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity,IOnCheckedChangeListener
{
int count = 1; /// <summary>
/// 实现OnCheckedChangeListener的接口
/// </summary>
/// <param name="group"></param>
/// <param name="checkedId"></param>
public void OnCheckedChanged(RadioGroup group, int checkedId)
{
RadioButton rdBtn = (RadioButton)FindViewById(checkedId);
Toast.MakeText(this, rdBtn.Text, ToastLength.Short).Show();
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
RadioGroup rg = FindViewById<RadioGroup>(Resource.Id.rg);
rg.SetOnCheckedChangeListener(this);
}
}
}

布局文件我就不贴了,注意1.使用RadioGroup包含两个或者多个RadioButton ,,注意RadioGroup,RadioButton每个ID都必须要写上2.实现RadioGroup单击事件的接口

IOnCheckedChangeListener

4.Xamarin android按钮监听事件:

namespace App914
{
[Activity(Label = "App914", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity,View.IOnClickListener
{
int count = 1;
public void OnClick(View v)
{
Button btn = FindViewById<Button>(Resource.Id.MyButton);
btn.Text =string.Format( "实现xamarin android单击监听事件{0}",count++);
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle); // Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.SetOnClickListener(this);
}
}
}

普通按钮实现单击事件的监听,注意接口是IOnClickListener

5.Xamarin android按钮监听事件:

namespace App914
{
[Activity(Label = "App914", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity, CompoundButton.IOnCheckedChangeListener
{
public void OnCheckedChanged(CompoundButton compoutButton,Boolean b)
{
if (compoutButton.Checked)
{
Toast.MakeText(this,compoutButton.Text.ToString(),ToastLength.Long).Show();
}
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
CheckBox cb_1 = (CheckBox)FindViewById(Resource.Id.cb_one);
CheckBox cb_2 = (CheckBox)FindViewById(Resource.Id.cb_two);
CheckBox cb_3 = (CheckBox)FindViewById(Resource.Id.cb_three); cb_1.SetOnCheckedChangeListener(this);
cb_2.SetOnCheckedChangeListener(this);
cb_3.SetOnCheckedChangeListener(this);
}
}
}

多选按钮的监听事件布局文件我就不贴出来,同样是要注意的几点和RadioButton的监听事件一样

总结:

虽然说在xamarin中事件的监听用的不多,和lamda、delegate比起来也不方便,但是非常有必要了解一下,新手学xamarin的时候监听还是很有必要学一下的,不要的话参考菜鸟上的android教程不易理解,毕竟java android中就是用的监听,同时要注意的是每个元素的监听事件所实现的接口不一样,这是要注意的一点

xamarin android如何监听单击事件的更多相关文章

  1. 大叔也说Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出

    回到目录 这个操作在原生android里是很容易实现的,在xamarin里也不难,在activity里有方法OnKeyDown,我们只需要重写一下就可以了,然后通过webView重新加载到要返回的页面 ...

  2. Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出

    https://www.cnblogs.com/lori/p/5088627.html DateTime? lastBackKeyDownTime; public override bool OnKe ...

  3. Android EditText截获与监听输入事件

      Android EditText截获与监听输入事件共有2种方法: 1.第一种方法:使用setOnKeyListener(),不过这种方式只能监听硬键盘事件. edittext.setOnKeyLi ...

  4. Android如何监听蓝牙耳机的按键事件

    写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「Bluedio + 红米手机」. 1.蓝牙耳机的 ...

  5. Android如何监听蓝牙耳机的按键事件(转)

    源: Android如何监听蓝牙耳机的按键事件 写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「 ...

  6. Android实现监听控件点击事件

    Android实现监听控件点击事件 引言 这篇文章主要想写一下Android实现监听点击事件的几种方法,Activity和Fragment实现起来有些方法上会有些不同,这里也略做介绍. 最近一直在忙一 ...

  7. Android怎样监听蓝牙耳机的按键事件

    Android怎样监听蓝牙耳机的按键事件 写在前面: 直接想要代码非常easy,你直接把滚动栏拉到最底端就能够看到.假设想要十分地了解为什么,那就依照我规划的一步一步来理解.下面測试环境以手头上有的「 ...

  8. Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)

    Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动 ...

  9. Fragment中监听onKey事件,没你想象的那么难。

    项目中越来越多的用到Fragment,在用Fragment取代TabHost的时候遇到了一个问题,我们都知道,TabHost的Tab为Activity实例,有OnKey事件,但是Fragment中没有 ...

随机推荐

  1. jquery.base64.js 中文乱码处理

    c# 转码:Convert.ToBase64String(Encoding.UTF8.GetBytes(str)) js 解码:$.base64.atob(this.options.valids, t ...

  2. PHP yield 分析,以及协程的实现,超详细版(上)

    参考资料 http://www.laruence.com/2015/05/28/3038.html http://php.net/manual/zh/class.generator.php http: ...

  3. MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作)

    MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作): a.创建2张表 create table userinfo(nid int not nul ...

  4. Nginx的知识分享,感兴趣的可以看一下

    我干了五年了,我想把我的经验跟大家分享一下,欢迎大家阅读. 1. Nginx入门简介 WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务. WWW 是 In ...

  5. OpenCASCADE 参数曲线曲面面积

    OpenCASCADE 参数曲线曲面面积 eryar@163.com Abstract. 本文介绍了参数曲面的第一基本公式,并应用曲面的第一基本公式,结合OpenCASCADE中计算多重积分的类,对任 ...

  6. Spring Cloud Eureka Server集群Demo级搭建

    将上篇随笔Spring Cloud Eureka服务Demo级搭建进行改造,改造成一个在本机的伪集群 1.修改hosts文件(windows10 hosts文件位置:C:\Windows\System ...

  7. HDU3790-最短路径问题

    最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  8. yum中$releasever、 $basearch等变量含义

    [root@kickstart ~]# rpm -qf /etc/redhat-release centos-release--4.1708.el7.centos.x86_64 yum中的$relea ...

  9. lnmp1.3 配置pathinfo---thinkphp3.2 亲测有效

    lnmp1.3环境下配置pathinfo模式试了很多方法,都以失败告终,博主被这个问题困扰了很久,终于解决了!现记录如下: 1.打开php.ini 通常该文件在 /usr/local/php/etc/ ...

  10. JavaScript tips ——搞定闰年

    前言 处理时间时,常常要考虑用户的输入是否合法,其中一个很典型的场景就是平闰年的判断,网上其实有很多类似的算法,但是其实不必那么麻烦,下面我讲讲的我的思路. 规则 公元年数可被4整除为闰年,但是整百( ...