欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:【Android的事件觸發(fā)】

柚子快報激活碼778899分享:【Android的事件觸發(fā)】

http://yzkb.51969.com/

Android學習路線(第二部分)

基于監(jiān)聽的事件處理機制

基于回調事件的處理機制

view的事件觸發(fā)

Android 存儲概念

File 內部存儲

一、基于監(jiān)聽的事件處理機制

監(jiān)聽三要素:事件源、事件、事件監(jiān)聽器

實現(xiàn)監(jiān)聽事件的方法:

通過內部類實現(xiàn) class OnClick implements View.OnlickListener{

}

通過匿名內部類實現(xiàn) @Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_button);

mBtn3 = (Button) findViewById(R.id.btn_3);

mBtn3.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(ButtonActivity.this,"btn3被點擊了",Toast.LENGTH_SHORT).show();

}

});

通過事件源所在類實現(xiàn) // 3.通過事件源所在的內部類實現(xiàn) 當前Activity實現(xiàn)implements View.OnClickListener

mBtnEvent.setOnClickListener(EventActivity.this);

@Override

public void onClick(View v) {

Log.d("事件源所在的內部類", "click");

ToastUtil.showMessage(EventActivity.this, "事件源所在的內部類實現(xiàn)");;

}

通過外部類實現(xiàn) 布局文件中onClick屬性(針對點擊事件)(這種方法設置的監(jiān)聽器比較優(yōu)先,如果同一個按鈕有好幾個監(jiān)聽事件,那么只會執(zhí)行后設置的監(jiān)聽器)

二、基于回調事件的處理機制

回調事件的實現(xiàn):我們在自己的控件中繼承button類,然后重寫了一個ontouchevent方法,當我們點下去按鈕的時候,執(zhí)行回調這個方法。

回調事件處理的傳播,系統(tǒng)執(zhí)行回調操作時先從監(jiān)聽事件檢查是否

到控件本身(比如一個自己的button)

再到Activity逐層向外傳播。假如在某一層的return true了,那么回調事件停止傳播。

mBtnMy = findViewById(R.id.btn_my);

// 先執(zhí)行監(jiān)聽器里的方法 在執(zhí)行回調

mBtnMy.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

//getAction值的是“按下”這個事件

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

Log.d("Listener", "OnTouchListener");

break;

}

return false;

}

});

// 后執(zhí)行Activity里的方法 在執(zhí)行回調

@Override

public boolean onTouchEvent(MotionEvent event) {

super.onTouchEvent(event);

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

Log.d("EventActivity", "onTouchEvent");

break;

}

return false;

}

三、View 事件分發(fā)流程

1. dispatchTouchEvent方法(入口方法)

1.1、事件分發(fā)的核心方法,事件分發(fā)的邏輯都是在這個方法中實現(xiàn); 1.2、View、以及 ViewGroup、其他的實現(xiàn)類都重寫了該方法; 1.3、如果成功處理則返回true,處理失敗則返回false,表示事件沒有被處理。 1.4、在view的相關類中,該方法的主要作用是消費觸摸事件。 1.5、在viewGroup相關類中,該方法的主要作用是把事件分發(fā)到該viewGroup所擁有的子view,如果子view沒有處理則自己處理;

1.6、點擊事件時,觸發(fā)了兩次 dispatchTouchEvent方法,一次action_down和一次action_up

2. onTouchEvent

方法返回true表示消費事件,返回false表示不消費事件;viewGroup分發(fā)事件時,如果沒有一個子view消費事件,那么會調用viewGroup自身的onTouchEvent方法來處理事件。View的dispatchTouchEvent方法(入口方法)中,先調用onTouchListener判斷是否消費;如果onTouchListener沒有消費事件,才會調用onTouchEvent來處理事件;

3. onTouch 和onTouchEvent 的區(qū)別

onTouchListener的onTouch方法優(yōu)先級比onTouchEvent高,會先觸發(fā)。假如onTouch方法返回false,會接著觸發(fā)onTouchEvent,反之onTouchEvent方法不會被調用。內置諸如click事件的實現(xiàn)等等都基于onTouchEvent,假如onTouch返回true,這些事件將不會被觸發(fā)。

四、Handler消息處理

功能一:延時處理,postDelayed

private Handler mHandler;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_handler);

mHandler = new Handler();

mHandler.postDelayed(new Runnable() {

@Override

public void run() {

Intent intent = new Intent(HandlerActivity.this, ButtonActivity.class);

startActivity(intent);

}

}, 3000);

功能二:線程間通信,handleMessage,Thread

private Handler mHandler;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_handler);

//重寫handleMessage方法接收線程的消息并做一些處理

mHandler = new Handler(Looper.getMainLooper()) {

@Override

public void handleMessage(@NonNull Message msg) {

super.handleMessage(msg);

switch (msg.what) {

case 1:

ToastUtil.showMessage(HandlerActivity.this, "線程通信成功");;

break;

}

}

};

//新建一個新的線程thread,發(fā)送消息

new Thread() {

@Override

public void run() {

super.run();

Message message = new Message();

message.what = 1;

mHandler.sendMessage(message);

}

}.start();

}

柚子快報激活碼778899分享:【Android的事件觸發(fā)】

http://yzkb.51969.com/

精彩文章

評論可見,查看隱藏內容

本文內容根據網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19093299.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄