android中的后退功能,如何在Android应用中实现一个返回键功能
如何在Android應用中實現(xiàn)一個返回鍵功能
發(fā)布時間:2020-11-23 16:28:56
來源:億速云
閱讀:89
作者:Leah
今天就跟大家聊聊有關(guān)如何在Android應用中實現(xiàn)一個返回鍵功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
記錄用戶點擊的操作歷史,使用棧數(shù)據(jù)結(jié)構(gòu),頻繁的操作棧頂(添加,獲取,刪除),使用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 HISTORY=new LinkedList();
/**
* 處理返回鍵
* @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 baseViewClass) {
BaseView baseView=null;
//判斷是否存在
String key=baseViewClass.getSimpleName();
if(VIEWCACHE.containsKey(key)){
baseView=VIEWCACHE.get(key);
}else{
try {
Constructor 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);
}
看完上述內(nèi)容,你們對如何在Android應用中實現(xiàn)一個返回鍵功能有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
總結(jié)
以上是生活随笔為你收集整理的android中的后退功能,如何在Android应用中实现一个返回键功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫中文乱码_解决Pytho
- 下一篇: android 3.0单元测试,Andr