Android回调事件传播-android学习之旅(四十五)
2023-09-11 14:21:00 时间
概念简单介绍
代码演示
package peng.liu.test;
import android.app.ActionBar;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.myButton).setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
System.out.println("listener on listener");
return false;
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
System.out.println("listener on activity");
return false;
}
}
package peng.liu.test;
import android.content.Context;
import android.content.SyncStatusObserver;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.widget.Button;
/**
* Created by lplp on 2015/6/10.
*/
public class MyButton extends Button{
public MyButton(Context context,AttributeSet attributeSet){
super(context,attributeSet);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
System.out.println("listener on Button");
return false;
}
}
<?xml version="1.0" encoding="utf-8"?
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<peng.liu.test.MyButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/myButton"
/>
</LinearLayout>
打印顺序
listener on listener
listener on Button
listener on activit
说明先到绑定的监听器,后到Button复写回调的监听器。最后到acticity实现的监听器。
相关文章
- [Android]calabash-android再深入
- Android 开发之旅:短信的收发及在android模拟器之间实践(二)
- Android API之android.provider.ContactsContract.Data
- Android API之android.view.View.MeasureSpec
- Android开发学习---使用Intelij idea 13.1 进行android 开发
- 《android开发艺术探索》读书笔记(十一)--Android的线程和线程池
- Android学习---ListView的点击事件,simpleAdapter和arrayadapter,SimpleCursoAdapter的原理和使用
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
- 【第一篇】学习 android 事件总线androidEventbus之sticky事件的传递
- 《Gradle权威指南》--Android Gradle测试
- 《Android源码设计模式》--状态模式--责任链模式--解释器模式--命令模式--观察者模式--备忘录模式--迭代器模式
- 2022 最强Android核心知识点体系总结带你“精通Android开发”。
- Android的报错提示:Failed to resolve: com.android.support.test.espresso:espresso-core:3.0.2
- Android报错提示:Failed to resolve: com.android.support.constraint:constraint-layout:1.1.3
- Android 11.0 12.0无源码app修改它的icon图标
- android 11.0 12.0Launcher3去掉默认的google搜索栏
- android 11.0 12.0设置上网应用白名单(上网app白名单)
- android RecyclerView的滚动事件OnScrollListener详解
- Android 6.0以上主动申请权限
- 【Android 插件化】Hook 插件化框架 ( Hook 实现思路 | Hook 按钮点击事件 )
- Android的ViewAnimator而它的子类ViewSwitcher-android学习之旅(三十三)
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题
- Android Studio的报错提示:android.content.res.Resources$NotFoundException: Resource ID #0xfffffe6c
- Android 9.0/P(android p指安卓9.0版本) okhttp3网络请求出错