編輯:關於android開發
Fragment類提供了管理“選項菜單”的回調函數onCreateOptionMenu(Menu,MenuInflater),調用它可以--創建“選項菜單”。
在需要“選項菜單”時,Android-OS通過Activity的FragmentManager調用Fragment的onCreateOptionMenu(Menu,MenuInflater),創建出來。
當用戶點擊“選項菜單”時,Fragment會收到onOptionItemSelected(MenuItem)方法的回調請求。
//選項菜單可以包含多個菜單項,通過檢查菜單項的ID,確定是哪一個,然後作出相應的動作。
那麼什麼是回調請求呢?????
從用戶的角度看,當我點擊“選項菜單”,會發生一件事(這個app是跳轉到另一個activity)。
代碼是在fragment中覆蓋onOptionItemSelected(MenuItem){//跳轉到另一個activity}。
先來看一個經典的回調函數的例子
模擬911事件-結果WTC(世貿大廈)被轟炸
1.這裡是接口、調用者、執行者
//相當於接口InA public interface BoomWTC{ //獲得拉登的決定 public benLaDengDecide(); // 執行轟炸世貿 public void boom(); } //相當於class A public class At$911 implements BoomWTC{//相當於【背景1】 private boolean decide; private TerroristAttack ta;//相當於【背景2】 public At$911(){ Date now=new Date(); SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm"); this.dicede= myFmt.format(dt).equals("01/09/11 09:44"); this.ta=new TerroristAttack(); } //獲得拉登的決定 public boolean benLaDengDecide(){ return decide; } // 執行轟炸世貿 public void boom(){ ta.attack(new At$911);//class A調用class B的方法傳入自己的對象,相當於【you call me】 } } //相當於class B public class TerroristAttack{ public TerroristAttack(){ } public attack(BoomWTC bmw){——這相當於【背景3】 if(bmw.benLaDengDecide()){/*class B在方法中回調class A的方法,相當於【i call you back】*/
} } }
2.這裡是主函數
public class $911{ public static void main(String[] args){
At$911 $911=new At$911();
$911.boom();
} }
流程:在main()中創建911實例,調用boom()方法,該方法會調用911實例中的TerroristAttack實例的attack()方法,該方法新建911匿名實例,傳入attack()。
TerroristAttack的attack(BoomWTC bmw)接受一個實現BoomWTC接口的實例,並用接口變量bmw來引用傳入的911匿名實例。然後,bmw.benLaDengDecide()調用911的benLaDengDecide()方法,返回一個true(假設今天是9月11日),然後通過if判斷,執行轟炸。。。
對比來看:
androidOS main new activity.onMenuItemSelected new 911.boom fragment.onOptionItemSelected TerroristAttack.attack
因此當用戶點擊“選項菜單”時,Fragment會收到onOptionItemSelected(MenuItem)方法的回調請求,就是androidOS最終會調用onOptionItemSelected()響應--點擊選項菜單--這個事件
如何寫一個簡易的文件系統(4):umount哈哈,時隔幾年,又從磁盤深處找出了原始代碼myfs.zip。---------------------------------
unity的 斷言 Unity 5.1 Assertion Library 當你建立Unity 的手機游戲你最可能渴望設置Script Call Optimization
Android之ListView&ViewPager模擬新聞界面,androidlistview模擬新聞 APP 的界面 1)寫 ListView
android 打造炫酷導航欄(仿UC頭條) 年後開始上班甚是清閒,所以想搗鼓一些東西。在翻閱大神傑作Android 教你打造炫酷的ViewPagerIndicato
解決 Could not find com.android.tools.