標籤:
概念簡單介紹
代碼示範
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回調事件傳播-android學習之旅(四十五)