专业网站建设品牌,18年专业建站经验,服务6000+客户--广州松河
免费热线:400-963-0016
微信咨询
|
联系我们
扫二维码关注公众号
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
位置:
广州松河
>
技术支持
> Xamarin.Forms Android PDA 监听手机按键
Xamarin.Forms Android PDA 监听手机按键
来源:网络整理 时间:2023/2/14 0:56:42 共
3632
浏览
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应用程序,除非单击注销
同类资讯
mysql函数的使用算不算创建储存过程_数据库
世界上有哪些大海_java
没有注册的本地函数高手进_java
值不值得去东北大学而不去上海北京的211_java
jsp页面点击打印无响应_java
有什么比较好的JAVA开发书推荐_java
如何将文章保存入360图书馆_java
erp用什么开发语言_java
windows7下边的任务栏上小窗口显示怎么调出来_java
用有道词典怎么造句子_java
但会因为学历问题而找不到工作吗_java
mysql限制查询,mysql数据表规模九千万左右_数据库
mysql查询语句之间,linux如何查看mysql创建表的语句_数据库
mysql 日期查询性能,mysql中如何设置默认时间为当前时间_数据库
一般的java项目后台都有什么技术_数据库
mysql 不包含查询,mysql如何进入数据库查看所有表_数据库
mysql查询练习50,mysql怎么查询执行sql的记录_数据库
mysql查询结果行号,如何取得某关键字值的行号_数据库
mysql找出重复数据,在mysql中两个表连接的字段数据重复_数据库
mysql性别查询优化,Java程序员最常用的技术有哪些_数据库
资讯动态
公司新闻
互联网资讯
电商资讯
优化推广
技术支持
关于我们
公司简介
企业文化
服务项目
公司新闻
服务项目
网站建设
网站推广
品牌策划
移动应用
服务支持
在线咨询
服务流程
产品报价
售后服务
联系我们
代理加盟
付款方式
在线留言
联系方式
联系方式
电话:400-963-0016
邮箱:sales@itwy.com
QQ:250211130
微信:18520775521
Copyright © 广州松河信息科技有限公司 2005-2026 版权所有
粤ICP备16019765号
广州松河信息科技有限公司 版权所有
18520775521
QQ洽谈
sales@itwy.com