package com.hotbitmapgg.moequest.module.commonality; import butterknife.Bind; import com.hotbitmapgg.moequest.R; import com.hotbitmapgg.moequest.base.RxBaseActivity; import com.hotbitmapgg.moequest.module.douban.DoubanMeiziFragment; import com.hotbitmapgg.moequest.module.gank.GankMeiziFragment; import com.hotbitmapgg.moequest.module.huaban.HuaBanMeiziFragment; import com.hotbitmapgg.moequest.module.jiandan.JianDanMeiziFragment; import com.hotbitmapgg.moequest.module.meizitu.MeiziTuFragment; import com.hotbitmapgg.moequest.module.taogirl.TaoFemaleFragment; import com.hotbitmapgg.moequest.utils.AlarmManagerUtils; import com.hotbitmapgg.moequest.utils.ShareUtil; import com.hotbitmapgg.moequest.utils.SnackbarUtil; import com.hotbitmapgg.moequest.widget.CircleImageView; import java.util.Random; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.NavigationView; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; /** * Created by hcc on 16/7/30 12:57 * 100332338@qq.com * <p/> * 萌妹纸主界面 */ public class MainActivity extends RxBaseActivity implements NavigationView.OnNavigationItemSelectedListener { @Bind(R.id.toolbar) Toolbar mToolbar; @Bind(R.id.drawer_layout) DrawerLayout mDrawerLayout; @Bind(R.id.nav_view) NavigationView mNavigationView; private Fragment[] fragments; private int currentTabIndex; private int index; private Random random = new Random(); private int[] avatars = new int[] { R.drawable.ic_avatar1, R.drawable.ic_avatar2, R.drawable.ic_avatar3, R.drawable.ic_avatar4, R.drawable.ic_avatar5, R.drawable.ic_avatar6, R.drawable.ic_avatar7, R.drawable.ic_avatar8, R.drawable.ic_avatar9, R.drawable.ic_avatar10, R.drawable.ic_avatar11, }; private long exitTime; @Override public int getLayoutId() { return R.layout.activity_main; } @Override public void initViews(Bundle savedInstanceState) { setNavigationView(); initFragment(); AlarmManagerUtils.register(this); } private void initFragment() { GankMeiziFragment gankMeiziFragment = GankMeiziFragment.newInstance(); MeiziTuFragment meiziTuFragment = MeiziTuFragment.newInstance(); DoubanMeiziFragment doubanMeiziFragment = DoubanMeiziFragment.newInstance(); HuaBanMeiziFragment huaBanMeiziFragment = HuaBanMeiziFragment.newInstance(); TaoFemaleFragment taoFemaleFragment = TaoFemaleFragment.newInstance(); JianDanMeiziFragment jianDanMeiziFragment = JianDanMeiziFragment.newInstance(); fragments = new Fragment[] { gankMeiziFragment, meiziTuFragment, taoFemaleFragment, doubanMeiziFragment, huaBanMeiziFragment, jianDanMeiziFragment }; //显示第一个 gank妹子 getSupportFragmentManager().beginTransaction() .replace(R.id.content, gankMeiziFragment) .commit(); } private void setNavigationView() { mNavigationView.setNavigationItemSelectedListener(this); View headerView = mNavigationView.inflateHeaderView(R.layout.nav_header_main); CircleImageView mCircleImageView = (CircleImageView) headerView.findViewById( R.id.nav_head_avatar); int randomNum = random.nextInt(avatars.length); mCircleImageView.setImageResource(avatars[randomNum]); } @Override public void initToolBar() { mToolbar.setTitle("萌妹纸"); setSupportActionBar(mToolbar); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, mDrawerLayout, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); mDrawerLayout.addDrawerListener(toggle); toggle.syncState(); } @SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.nav_home: changIndex(0, getResources().getString(R.string.gank_meizi), item); return true; case R.id.nav_meizitu: changIndex(1, getResources().getString(R.string.meizitu), item); return true; case R.id.nav_tao: changIndex(2, getResources().getString(R.string.tao_female), item); return true; case R.id.nav_douban: changIndex(3, getResources().getString(R.string.douban_meizi), item); return true; case R.id.nav_huaban: changIndex(4, getResources().getString(R.string.huaban_meizi), item); return true; case R.id.nav_jiandan: changIndex(5, getResources().getString(R.string.jiandan_meizi), item); return true; case R.id.nav_about: startActivity(new Intent(MainActivity.this, AppAboutActivity.class)); return true; case R.id.nav_share: ShareUtil.shareLink(getString(R.string.project_link), "萌妹纸,每日更新妹子福利", MainActivity.this); return true; default: break; } return true; } public void changIndex(int changNum, String title, MenuItem item) { index = changNum; switchFragment(fragments[changNum]); item.setChecked(true); mToolbar.setTitle(title); mDrawerLayout.closeDrawers(); } public void switchFragment(Fragment fragment) { FragmentTransaction trx = getSupportFragmentManager().beginTransaction(); trx.hide(fragments[currentTabIndex]); if (!fragments[index].isAdded()) { trx.add(R.id.content, fragments[index]); } trx.show(fragments[index]).commit(); currentTabIndex = index; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { logoutApp(); } return true; } private void logoutApp() { if (System.currentTimeMillis() - exitTime > 2000) { SnackbarUtil.showMessage(mDrawerLayout, getString(R.string.back_message)); exitTime = System.currentTimeMillis(); } else { finish(); } } }