Android Fragment 监听返回键
生活随笔
收集整理的這篇文章主要介紹了
Android Fragment 监听返回键
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
直接給代碼*-*
Fragment:
public boolean onKeyDown(int keyCode, KeyEvent event){if ((keyCode == KeyEvent.KEYCODE_BACK)){//執行操作((MainActivity) Objects.requireNonNull(getActivity())).viewPager.setCurrentItem(3); }return true;}MainActivity:
@BindView(R.id.viewPager)public ViewPager viewPager;Fragment currentFragment; viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels){}@Overridepublic void onPageSelected(int position){FragmentManager fragmentManager = MainActivity.this.getSupportFragmentManager();List<Fragment> fragments = fragmentManager.getFragments();currentFragment=fragments.get(position);……}@Overridepublic void onPageScrollStateChanged(int state){}});setupViewPager(viewPager); private void setupViewPager(ViewPager viewPager){adapter = new ViewFragmentPagerAdapter(getSupportFragmentManager());adapter.addFragment(MainFragment.newInstance(getResources().getString(R.string.app_title)));adapter.addFragment(new Fragment());……viewPager.setAdapter(adapter);viewPager.setOffscreenPageLimit(5);} // 用來計算返回鍵的點擊間隔時間private long exitTime = 0;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event){if(currentFragment!=null&¤tFragment instanceof AboutApp){((AboutApp)currentFragment).onKeyDown(keyCode, event);return true;} else if (isTaskRoot()){if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){if ((System.currentTimeMillis() - exitTime) > 2000){Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();}else{finish();}return true;}}return super.onKeyDown(keyCode, event);}?
總結
以上是生活随笔為你收集整理的Android Fragment 监听返回键的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 发起加入QQ群、打开网址
- 下一篇: Android WebView 图片超出