package com.king.tv; import android.os.Bundle; import android.os.SystemClock; import android.support.annotation.IdRes; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.widget.RadioButton; import com.king.base.util.LogUtils; import com.king.base.util.ToastUtils; import com.king.tv.mvp.base.PureActivity; import com.king.tv.mvp.fragment.FollowFragment; import com.king.tv.mvp.fragment.HomeFragment; import com.king.tv.mvp.fragment.LiveFragment; import com.king.tv.mvp.fragment.MineFragment; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import rx.Observable; public class MainActivity extends PureActivity { @BindView(com.king.tv.R.id.rbHome) RadioButton rbHome; @BindView(com.king.tv.R.id.rbLive) RadioButton rbLive; @BindView(com.king.tv.R.id.rbFollw) RadioButton rbFollw; @BindView(com.king.tv.R.id.rbMe) RadioButton rbMe; private HomeFragment homeFragment; private LiveFragment liveFragment; private FollowFragment followFragment; private MineFragment mineFragment; private boolean isExit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ButterKnife.bind(this); EventBus.getDefault().register(this); } @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } @Override protected void onResume() { super.onResume(); isExit = false; } @Override public int getRootViewId() { return com.king.tv.R.layout.activity_main; } @Override public void initUI() { showHomeFragment(); } @Override public void onBackPressed() { if(!isExit){ ToastUtils.showToast(context,R.string.press_again_to_exit); isExit = true; EventBus.getDefault().post(isExit); }else{ super.onBackPressed(); } } @Subscribe(threadMode = ThreadMode.ASYNC) public void onEventExit(Boolean isBool){ SystemClock.sleep(1000); isExit = false; } public void showHomeFragment(){ FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); hideAllFragment(fragmentTransaction); if(homeFragment == null){ homeFragment = HomeFragment.newInstance(); fragmentTransaction.add(com.king.tv.R.id.fragmentContent,homeFragment); } commitShowFragment(fragmentTransaction,homeFragment); } public void showLiveFragment(){ FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); hideAllFragment(fragmentTransaction); if(liveFragment == null){ liveFragment = LiveFragment.newInstance(getString(R.string.tab_live),null,true); fragmentTransaction.add(com.king.tv.R.id.fragmentContent,liveFragment); } commitShowFragment(fragmentTransaction,liveFragment); } public void showFollowFragment(){ FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); hideAllFragment(fragmentTransaction); if(followFragment == null){ followFragment = FollowFragment.newInstance(); fragmentTransaction.add(com.king.tv.R.id.fragmentContent,followFragment); } commitShowFragment(fragmentTransaction,followFragment); } public void showMineFragment(){ FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); hideAllFragment(fragmentTransaction); if(mineFragment == null){ mineFragment = MineFragment.newInstance(); fragmentTransaction.add(com.king.tv.R.id.fragmentContent,mineFragment); } commitShowFragment(fragmentTransaction,mineFragment); } public void commitShowFragment(FragmentTransaction fragmentTransaction,Fragment fragment){ fragmentTransaction.show(fragment); fragmentTransaction.commit(); } public void hideAllFragment(FragmentTransaction fragmentTransaction){ hideFragment(fragmentTransaction,homeFragment); hideFragment(fragmentTransaction,liveFragment); hideFragment(fragmentTransaction,followFragment); hideFragment(fragmentTransaction,mineFragment); } private void hideFragment(FragmentTransaction fragmentTransaction,Fragment fragment){ if(fragment!=null){ fragmentTransaction.hide(fragment); } } public void replaceFragment(@IdRes int id, Fragment fragment) { getSupportFragmentManager().beginTransaction().replace(id, fragment).commit(); } @OnClick({com.king.tv.R.id.rbHome, com.king.tv.R.id.rbLive, com.king.tv.R.id.rbFollw, com.king.tv.R.id.rbMe}) public void onClick(View view) { switch (view.getId()) { case com.king.tv.R.id.rbHome: showHomeFragment(); break; case com.king.tv.R.id.rbLive: showLiveFragment(); break; case com.king.tv.R.id.rbFollw: showFollowFragment(); break; case com.king.tv.R.id.rbMe: showMineFragment(); break; } } }