編輯:關於Android編程
記錄用戶點擊的操作歷史,使用棧數據結構,頻繁的操作棧頂(添加,獲取,刪除),使用LinkedList
捕獲用戶的返回鍵操作,響應返回鍵,返回上一個界面
MainActivity.java
/** * 返回鍵處理 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ boolean result=MiddleManager.getInstance().goBack(); if(!result){ Toast.makeText(MainActivity.this, "是否退出應用", 1).show(); } return false; } return super.onKeyDown(keyCode, event); }
MiddleManager.java
//操作歷史棧 private LinkedList<String> HISTORY=new LinkedList<String>(); /** * 處理返回鍵 * @return */ public boolean goBack() { //如果為空會拋異常 if(HISTORY.size()>0){ if(HISTORY.size()==1){ return false; } HISTORY.removeFirst(); if(HISTORY.size()>0){ String key=HISTORY.getFirst(); BaseView targetView=VIEWCACHE.get(key); mainContainer.removeAllViews(); View child=targetView.getView(); mainContainer.addView(child); child.startAnimation(AnimationUtils.loadAnimation(mainContainer.getContext(), R.anim.left_to_right)); currentView=targetView; return true; } } return false; }
/** * 加載界面 */ public void loadView(Class<? extends BaseView> baseViewClass) { BaseView baseView=null; //判斷是否存在 String key=baseViewClass.getSimpleName(); if(VIEWCACHE.containsKey(key)){ baseView=VIEWCACHE.get(key); }else{ try { Constructor<? extends BaseView> constructor; constructor = baseViewClass.getConstructor(Context.class); baseView=constructor.newInstance(mainContainer.getContext()); } catch (Exception e) { e.printStackTrace(); } VIEWCACHE.put(key, baseView); } mainContainer.removeAllViews(); View child=baseView.getView(); mainContainer.addView(child); child.startAnimation(AnimationUtils.loadAnimation(mainContainer.getContext(), R.anim.left_to_right)); currentView=baseView; //放入棧 HISTORY.addFirst(key); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
本節引言: 本節帶來的是Android多媒體中的——MediaPlayer,我們可以通過這個API來播放音頻和視頻 該類是Androd
其實我一直准備寫一篇關於Android事件分發機制的文章,從我的第一篇博客開始,就零零散散在好多地方使用到了Android事件分發的知識。也有好多朋友問過我各種問題,比如
在 Android 的 OnScrollListener 整個事件我主要分析下他的執行順序: 實現滾動事件的監聽接口 new AbsListView.OnScrol
因為案例比較簡單,所以簡單用AndroidApplication -> Game -> Stage 搭建框架 一、主入口,無特殊 復制代碼 代碼如下: pub