第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java中怎么使用callback函數(shù)?

java中怎么使用callback函數(shù)?

慕姐4208626 2019-02-06 11:07:12
java中怎么使用callback函數(shù)
查看完整描述

3 回答

?
縹緲止盈

TA貢獻2041條經(jīng)驗 獲得超4個贊

 場景一:

復(fù)制代碼
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new Button.OnClickListener() {

//回調(diào)函數(shù)
@override
publicvoid onClick(View v) {
buttonTextView.setText("按鈕被點擊了");
}
});
復(fù)制代碼
  上面的代碼給按鈕加了一個事件監(jiān)聽器,這其實就是"回調(diào)"最常見的應(yīng)用場景之一。我們自己不會顯示地去調(diào)用onClick方法。用戶觸發(fā)了該按鈕的點擊事件后,它會由Android系統(tǒng)來自動調(diào)用。

  場景二:

復(fù)制代碼
@Override
publicvoid onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
// You code...
}

@Override
publicvoid onResume() {
super.onResume();
// You code...
}
復(fù)制代碼
  上面的方法大家就更熟悉了,這是Android系統(tǒng)在Activity類中設(shè)置的回調(diào)函數(shù),在Activity生命周期的不同階段,Android系統(tǒng)會自動調(diào)用相應(yīng)的方法(onCreate, onPause, onResume,onDestroy等等)

  以上是兩個Android中用到"回調(diào)"的場景,他們的代碼實現(xiàn)可能不同,但是思想上是相近的,都是"回調(diào)"思想的體現(xiàn)。下面,我們在Java中分別模擬這兩個場景。

  首先模擬注冊事件監(jiān)聽器。先寫一個監(jiān)聽器接口

復(fù)制代碼
package com.listener;

/**
* 點擊監(jiān)聽器接口
* @author CodingMyWorld
*
*/
publicinterface MyOnClickListener {
publicvoid onClick();
}
復(fù)制代碼
  然后寫一個我們自己的Button類

復(fù)制代碼
package com.listener;

publicclass MyButton {
private MyOnClickListener listener;

/**
* 設(shè)置具體點擊監(jiān)聽器
* @param listener 點擊監(jiān)聽器實現(xiàn)類
*/
publicvoid setOnClickListener(MyOnClickListener listener) {
this.listener = listener;
}

/**
* 按鈕被點擊
*/
publicvoid doClick() {
listener.onClick();
}
}
復(fù)制代碼
  最后模擬Client端的注冊監(jiān)聽器和觸發(fā)點擊操作。

復(fù)制代碼
package com.listener;

publicclass Client {
publicstaticvoid main(String[] args) {
MyButton button =new MyButton();
//注冊監(jiān)聽器
button.setOnClickListener(new MyOnClickListener() {

@Override
publicvoid onClick() {
System.out.println("按鈕被點擊了");

}

});
//模擬用戶點擊
button.doClick();
}
}
復(fù)制代碼
  以上就是"回調(diào)"思想在Java中事件監(jiān)聽的運用,我們再模擬第二個場景,"回調(diào)"在activity生命周期方法調(diào)用的體現(xiàn)。由于比較簡單,我就不多做解釋了,大家直接看代碼。

復(fù)制代碼
package com.activity;

publicabstractclass Activity {
protectedvoid onCreate() {
System.out.println("創(chuàng)建準(zhǔn)備~~~~~~~");
}

protectedvoid onDestroy() {
System.out.println("銷毀準(zhǔn)備~~~~~~~~");
}
}
復(fù)制代碼
復(fù)制代碼
package com.activity;

publicclass ConcreteActivity extends Activity {
@Override
protectedvoid onCreate() {
super.onCreate();
System.out.println("創(chuàng)建中!?。?quot;);
}

@Override
protectedvoid onDestroy() {
super.onDestroy();
System.out.println("銷毀中?。。?quot;);
}
}
復(fù)制代碼
復(fù)制代碼
package com.activity;

publicclass Client {
publicstaticvoid main(String[] args) {
Activity activity =new ConcreteActivity();
activity.onCreate();
activity.onDestroy();
}



查看完整回答
反對 回復(fù) 2019-03-17
?
躍然一笑

TA貢獻1826條經(jīng)驗 獲得超6個贊

1、定義連接工廠使用
2、定義回調(diào)函數(shù)的接口
3、定義使用回調(diào)函數(shù)的測試類

查看完整回答
反對 回復(fù) 2019-03-17
  • 3 回答
  • 0 關(guān)注
  • 610 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號