在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. .net 系列:Expression表达式树、lambda、匿名委托 的使用

    首先定义一个泛型委托类型,如下: public delegate T Function<T>(T a, T b); 实现泛型委托的主体代码,并调用: public static strin ...

  2. Regasm

      程序集注册工具(Regasm.exe) 读取程序集中的元数据,并将所需的项添加到注册表中.注册表允许COM 客户程序以透明方式创建.NET Framework类.类一经注册,任何COM 客户程序都 ...

  3. Javascript 常用类型检测

    1.判断变量是否为数组的数据类型? 方法一 :判断其是否具有"数组性质",如slice()方法.可自己给该变量定义slice方法,故有时会失效. 方法二 :obj instance ...

  4. iscroll遇到的两个坑

    最近移动端闪付遇到的两个坑做下总结: 1.使用iscroll后,滑动并没有生效 解决方案: 首先要查看:结构是否正确: <div id="wrapper">   //w ...

  5. Springmvc ModelAndView踩过的坑之HttpServletResponse response

    先抛出问题.以下两个方法声明有毛区别: @RequestMapping(value = "/rg") public void rg(@PathVariable Long pageI ...

  6. Common Data Service (CDS) 初探

    作者:陈希章 发表于 2017年12月16日 前言 Common Data Service(以下简称为CDS),通用数据服务是一个创新性的基础功能,这是微软试图打造一个全新的基于SaaS模式的数据服务 ...

  7. 我这样减少了26.5M Java内存!

    WeTest 导读 历时五天的内存优化已经结束,这里总结一下这几天都做了什么,有哪些收获.优化了,或可以优化的地方都有哪些.(因为很多事还没做,有些结论需要一定样本量才能断定,所以叫一期)一期优化减少 ...

  8. python 初学之账户登录

    要求: 输入用户名密码正确,提示登录成功, 输入三次密码错误,锁定账户. 开始: 使用两个文件: 密码账户文件 文件格式: jason    23456 tom       56789 tang   ...

  9. KafkaManager中Group下不显示对应Topic的解决方案

    一.软件版本 Kafka:0.8.2.1 KafkaManager:1.2.9.10 二.问题现象 点击Consumer下某个组,显示如下图所示的异常,查看KafkaManager的Applicati ...

  10. 【MySQL】(4)操作数据表中的记录

    1. 插入记录INSERT 方法一: INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),( ...