专业网站建设品牌,18年专业建站经验,服务6000+客户--广州松河
免费热线:400-963-0016
微信咨询
|
联系我们
扫二维码关注公众号
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
位置:
广州松河
>
技术支持
> Xamarin.Forms Android PDA 监听手机按键
Xamarin.Forms Android PDA 监听手机按键
来源:网络整理 时间:2023/2/14 0:56:42 共
3627
浏览
1.介绍
项目中,有个需求是监听手机音量按键,并在ContentPage页面进行事件处理。
2.解决方案
1.新建事件发送者
新建 MyKeyEventPublish.cs ,代码如下
public class MyKeyEventPublish
{
//全局静态变量,以便在需要监听时使用
public static MyKeyEventPublish myKeyEventPublish { get; set; }
public delegate void OnKeyDown_callback(int keyCode);
public OnKeyDown_callback cb;
public Action<int> OnKeyDown { set; get; }
}
2.App.cs
public App(MyKeyEventPublish myKeyEventPublish)
{
InitializeComponent();
//监听手机按键
MyKeyEventPublish.myKeyEventPublish = myKeyEventPublish;
//起始页
MainPage = new NavigationPage(new Login());
}
3.MainActivity.cs (Android)
//按键事件发布者
MyKeyEventPublish myKeyEventPublish;
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
//实例化按键发布者
myKeyEventPublish = new MyKeyEventPublish();
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App(myKeyEventPublish));
}
//监听键盘按下
public override bool OnKeyDown([GeneratedEnum]Keycode keyCode, KeyEvent e)
{
if (keyCode == Android.Views.Keycode.Back) {
return base.OnKeyDown(keyCode,e);
}
if (myKeyEventPublish == null || myKeyEventPublish.OnKeyDown == null) return true;
//键值更改事件发布方法
myKeyEventPublish.OnKeyDown((int)keyCode);
return true;
//return base.OnKeyDown(keyCode, e); //不屏蔽原有功能
}
4.ContentPage.cs 页面使用
public Login()
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
this.Appearing += Login_Appearing;
this.Disappearing += Login_Disappearing;
}
//页面销毁
private void Login_Disappearing(object sender, EventArgs e)
{
MyKeyEventPublish.myKeyEventPublish.OnKeyDown -= OnKeyDownCallBack;
}
//页面显示
private void Login_Appearing(object sender, EventArgs e)
{
MyKeyEventPublish.myKeyEventPublish.OnKeyDown += OnKeyDownCallBack;
}
//这个是处理函数
void OnKeyDownCallBack(int keyCode)
{
Console.WriteLine("keycode:" + keyCode);
}
以上是全部代码,如有问题,请及时评论!我会一一解答!请多多点赞哦!
版权说明:
本网站凡注明“广州松河 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
相关主题:
山东广告设计网站素材网
新蓝电脑官网设计网站登录
广州包装设计网站广告公司
世界知识杂志设计网站官网
小洲服饰包装设计网站招聘
连云港屋顶花园设计网站
魔方包装盒设计网站下载
骏卡官网设计网站国内上市
新疆大米包装设计网站官网
街头潮流美陈设计网站下载
·上一条:
添加点击手势识别器TapGestureRecognizer
|
·下一条:
保持用户登录xamarin.forms应用程序,除非单击注销
同类资讯
php开发项目教程,哪一种开发语言最有可能取代PHP_PHP基础
php教程下载pdf,手机如何打开php文件_PHP基础
在mysql中ignore是什么意思_数据库
sqlserver怎么导入数据库_数据库
mysql最大连接数查询,mysql数据库连接池配置教程_数据库
mysql表关联查询语句,计算每个部门有多少名员工的mysql语句是什么
如何ubuntu下启动_数据库
mysql查询最大连接数,mysql数据库连接密码怎么查_数据库
关于php的特性_数据库
如何在spring中读取properties配置文件里面的信息_数据库
server放到docker里运行_数据库
navicat怎么连接mysql_数据库
程序员操作失误把代码数据全部删了该负责吗_数据库
创建数据库需要用到什么_数据库
请问web开发工具都有哪些_数据库
mysql查询地图语句,可以推荐几款好用的软件吗_数据库
如何安装和运行mysql5616targz_数据库
mysql拦截查询语句,java为什么要设计interface_数据库
mysql 查询用户进程,有哪些程序员必读书籍值得推荐_数据库
请问如何将mysql数据库中的数据通过php显示在静态网页上_数据库
资讯动态
公司新闻
互联网资讯
电商资讯
优化推广
技术支持
关于我们
公司简介
企业文化
服务项目
公司新闻
服务项目
网站建设
网站推广
品牌策划
移动应用
服务支持
在线咨询
服务流程
产品报价
售后服务
联系我们
代理加盟
付款方式
在线留言
联系方式
联系方式
电话:400-963-0016
邮箱:sales@itwy.com
QQ:250211130
微信:18520775521
Copyright © 广州松河信息科技有限公司 2005-2026 版权所有
粤ICP备16019765号
广州松河信息科技有限公司 版权所有
18520775521
QQ洽谈
sales@itwy.com