当前位置: 移动技术网 > IT编程>移动开发>Android > Android实现返回键功能

Android实现返回键功能

2019年07月24日  | 移动技术网IT编程  | 我要评论

钱货两讫,小沈阳小品专辑,南山宫

记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除),使用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实现返回键功能,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网