package com.demo.app.ui; import android.content.DialogInterface; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.RadioButton; import android.widget.RadioGroup; import com.androidquery.AQuery; import com.demo.app.R; import com.demo.app.ui.dialog.ExitDialog; import com.demo.app.ui.main.HomeFragment; import com.demo.app.ui.main.MineFragment; import com.demo.lib.common.activity.BaseActivity; import com.demo.lib.common.dialog.DialogUtil; import com.demo.lib.common.util.FragmentSwitchHelperV2; import java.util.ArrayList; import java.util.List; import androidx.fragment.app.Fragment; public class MainActivity extends BaseActivity { private AQuery mAQuery; private FragmentSwitchHelperV2 mFragmentSwitchHelper; private RadioGroup rg_nav; private void initFragment() { List list = new ArrayList<>(); Fragment[] fs = new Fragment[list.size()]; list.toArray(fs); mFragmentSwitchHelper = FragmentSwitchHelperV2.create(R.id.fl_container, getSupportFragmentManager(), fs); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAQuery = new AQuery(this); rg_nav = findViewById(R.id.rg_nav); initFragment(); rg_nav.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_nav_recommend: { mFragmentSwitchHelper .changeFragment(HomeFragment.class); } break; case R.id.rb_nav_mine: { mFragmentSwitchHelper.changeFragment(MineFragment.class); } break; } } }); rg_nav.post(new Runnable() { @Override public void run() { ((RadioButton) findViewById(R.id.rb_nav_recommend)) .setChecked(true); } }); exitDialog = new ExitDialog.Builder(this).setNegativeClickListener(new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { DialogUtil.dismiss(exitDialog); MainActivity.this.finish(); } }).setPositiveClickListener(new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { DialogUtil.dismiss(exitDialog); } }).create(); } ExitDialog exitDialog = null; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (exitDialog != null) { exitDialog.show(); } return true; } return super.onKeyDown(keyCode, event); } }