您的位置:首页 > 其它

轻松实现Fragment监听返回键,回退ViewPager双击退出

2017-11-05 18:46 399 查看
实现方式是在Activity设置回调接口,Fragment实现接口。1.Activity设置接口private ShoppingCanGoBackListent shoppingCanGoBackListent;public interface ShoppingCanGoBackListent {boolean shoppingCanGoBack();}public void setShoppingCanGoBackListent(ShoppingCanGoBackListent shoppingCanGoBackListent) {this.shoppingCanGoBackListent = shoppingCanGoBackListent;}2.Fragment实现接口mCompMainActivity.setShoppingCanGoBackListent(new HomeBaseActivity.ShoppingCanGoBackListent() {@Overridepublic boolean shoppingCanGoBack() {if (webView.canGoBack()) {webView.goBack();return true;} else {return false;}}});mCompMainActivity、HomeBaseActivity:寄主Activity对象3.Activity 实现双击退出的逻辑private boolean mIsExit;public void doubleClickExit() {if (mIsExit) {KKApplication application = (KKApplication) getApplication();List<Activity> activityList = application.activityList;if (activityList != null && activityList.size() != 0) {for (Activity activity :activityList) {activity.finish();}}this.finish();} else {Toast.makeText(this, "再按一次返回退出小蜂找事", Toast.LENGTH_SHORT).show();mIsExit = true;new Handler().postDelayed(new Runnable() {@Overridepublic void run() {mIsExit = false;}}, 2000);}}4.Activity 重写onKeyDown监听返回键@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if (shoppingCanGoBackListent != null) {boolean shoppingCanGoBack = shoppingCanGoBackListent.shoppingCanGoBack();if (shoppingCanGoBack) {} else {doubleClickExit();}return true;}doubleClickExit();return true;}return super.onKeyDown(keyCode, event);}完美。。。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: