fragment 调用activity方法,如dispatchKeyEvent,dispatchTouchEvent

以dispatchKeyEvent为例

1、创建回调接口FragmentKeyeventListener

/*** 作者:created by meixi* 邮箱:13164716840@163.com* 日期:2018/9/10 15*/
public interface FragmentKeyeventListener {boolean onFragmentKeyEvent(KeyEvent event);
}

2、fragment实现接口

public class TestFragment extends Fragment implements FragmentKeyeventListener{

TestActivity testActivity ;

@Override

public void onAttach(Activity activity) {

super.onAttach(activity); testActivity = (TestActivity)activity;

testActivity.setFragmentKeyeventListener(this); //设置监听

}

@Override

public boolean onFragmentKeyEvent(KeyEvent event) {//实现回调方法

return false;

}

}

3、activity代码,通过接口把dispatchKeyEvent事件传递到fragment

 

FragmentKeyeventListener fragmentKeyeventListener;public void setFragmentKeyeventListener(FragmentKeyeventListener fragmentKeyeventListener) {this.fragmentKeyeventListener = fragmentKeyeventListener;
}@Override
public boolean dispatchKeyEvent(KeyEvent event) {//防止该方法执行两次if(event.getKeyCode() == 66 && event.getAction() != KeyEvent.ACTION_UP) {//不响应按键抬起时的动作return false}if (fragmentKeyeventListener!=null&&event.getKeyCode()==66){fragmentKeyeventListener.onFragmentKeyEvent(event);return true;}return super.dispatchKeyEvent(event);
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(2657):vue3实现计算器

第一步 引入ref 第二步 第三步

微信小程序map作为子组件wx.createMapContext失效

我是将map封装成了子组件进行使用,发现wx.createMapContext无论如何都没有效果。最后,定睛一看,原来将map放到子组件中,再使用wx.createMapContext需要增加额外的参数this 具体使用方法如下: const mapCtx wx.create…

小程序原生组件调用mpvue父组件方法

通过triggerEvent实现 1、小程序原生子组件 methods: {markertap () {console.log(子组件内部点击)this.triggerEvent(markertap)} }2、mpvue父组件 <marker-map id"marker-map" markertap"makertap"></marker-map>methods: {markertap () {…

昨晚通宵把服务器格式化,重新配置环境。

1.备份代码和数据 备份数据库用到命令&#xff1a;mysqldump -u 用户名 -p 数据库名 > 导出文件名 2.然后登录阿里云后台停止服务器&#xff0c;再格式化磁盘。 3.配置软件源 Ubuntu中软件更新的源服务器地址存储再/etc/apt/soures.list 每一行的开头是deb和deb-src&#xf…

AsyncTask使用详解

AsyncTask是一个抽象类&#xff0c;我们在使用时需要定义一个它的派生类并重写相关方法。AsyncTask类的声明如下&#xff1a; public abstract class AsyncTask<Params, Progress, Result> 我们可以看到&#xff0c;AsyncTask是一个泛型类&#xff0c;它的三个类型参数的…

c# linq的差集,并集,交集,去重【转】

using System.Linq;List<string> ListA new List<string>(); List<string> ListB new List<string>(); List<string> ListResult new List<string>();ListResult ListA.Distinct().ToList();//去重 ListResult ListA.Except(ListB).T…

HttpURLConnection, Android访问网络,实用demo

常量 private static final String CHARSET "UTF-8"; private static final String HTTP_METHOD_POST "POST"; private static final String PARAMETER_KEY_REN_CODE "renCode"; 1、使用AsyTask访问网络 class MyAsyncTask extends AsyncTask…

vscode设置折行字数

在vscode设置中查找Word Wrap。 将默认的80换成200 即可。

nuxt引用static或者assets目录下资源注意事项

Nuxt 服务器启动后&#xff0c;会将static文件目录映射到根路径/下。 所以想引用static目录下图片&#xff0c;直接写法如下 <img src"/log.png"/>引用assets目录下文件&#xff0c;写法如下 <img src"~/assets/logo.png"/>

SpringCloud stream连接RabbitMQ收发信息

百度上查的大部分都是一些很简单的单消费者或者单生产者的例子&#xff0c;并且多是同一个服务器的配置&#xff0c;本文的例子为多服务器配置下的消费生产和消费者配置。 参考资料&#xff1a;https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.RELEASE/reference/ht…

前端学习(2659):组件间传参

第一步 第二步 第三步 子组件定义 第四步

Android 生成随机数,获取一条随机字符串

public String makeCheckCode() {StringBuffer sb new StringBuffer();for (int i 0; i < 5; i) {int temp (int) (Math.random() * 10);sb.append(temp);}return sb.toString(); } final int duration new Random().nextInt(60) * 1000; /*获取一条随机字符串*/ p…

腾讯地图 添加事件和移除事件

见官方文档&#xff1a;https://lbs.qq.com/javascript_v2/guide-event.html var listener qq.maps.event.addListener(map,click,function() {alert(您点击了地图。);} ); //移除 click 事件. qq.maps.event.removeListener(listener);

java.lang.ArithmeticException: divide by zero

除数不能为零&#xff0c;请务必检查代码是否有机会出现除数为零的情况

腾讯地图 marker 从地图上清空

腾讯地图marker有一个方法setMap&#xff0c;使用这个方法&#xff0c;可以设置marker所在的地图&#xff0c;只要把所在地图设置为null&#xff0c;就相当于清空了。 marker.setMap(null)官方参考文档&#xff1a;https://lbs.qq.com/javascript_v2/case-run.html#sample-rem…

Android 实现验证码效果图

自定义验证码图片view public class CheckView extends View {Context mContext;String mCheckCode null;Paint mTempPaint new Paint();private final int mPointNum;private final int mLineNum;private int mTextLength;private final float mTextSize; // private f…