public class MainActivity extends FragmentActivity implements View.OnClickListener { private static FragmentManager mFragmentManager; private ArrayList<Fragment> fragments = null; private InviteFragment inviteFragment; private MineFragment mineFragment; private MoneyFragment moneyFragment; private TaskFragment taskFragment; private int currentFootIndex = 0; private RadioButton footer_rb_money; private RadioButton footer_rb_task; private RadioButton footer_rb_mine; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initWidgets(); initData(); registerPicMessageReceiver(); registerHeaderMessageReceiver(); } private void initData() { } private void initWidgets() { footer_rb_money = (RadioButton) findViewById(R.id.footer_rb_money); findViewById(R.id.footer_rb_invite).setOnClickListener(this); footer_rb_mine = (RadioButton) findViewById(R.id.footer_rb_mine); footer_rb_mine.setOnClickListener(this); footer_rb_money.setOnClickListener(this); footer_rb_task = (RadioButton) findViewById(R.id.footer_rb_task); footer_rb_task.setOnClickListener(this); // 获取FragmentManager实例 mFragmentManager = getSupportFragmentManager(); // 初始化首个fragment initFragment(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.footer_rb_task: setFootItemSelected(currentFootIndex, 0); break; case R.id.footer_rb_money: setFootItemSelected(currentFootIndex, 1); sendBroadcast(new Intent(CommonData.Invite_listview)); break; case R.id.footer_rb_invite: setFootItemSelected(currentFootIndex, 2); Intent intent = new Intent(CommonData.Invite_listview); sendBroadcast(intent); break; case R.id.footer_rb_mine: setFootItemSelected(currentFootIndex, 3); break; default: break; } } /** * 初始化fragment */ private void initFragment() { FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); fragmentTransaction.setCustomAnimations( R.anim.push_left_in, R.anim.push_right_out); fragments = new ArrayList<>(); taskFragment = new TaskFragment(); moneyFragment = new MoneyFragment(); inviteFragment = new InviteFragment(); mineFragment = new MineFragment(); fragments.add(taskFragment); fragments.add(moneyFragment); fragments.add(inviteFragment); fragments.add(mineFragment); fragmentTransaction.add(R.id.content, fragments.get(0)).commit(); } /** * 切换tab更换展示内容 * * @param */ public void setFootItemSelected(int currentFragment, int index) { if (currentFragment != index && fragments != null && fragments.get(index) != null) { mFragmentManager.popBackStack(); mFragmentManager.beginTransaction().setCustomAnimations(R.anim.push_right_in, R.anim .push_left_out); if (fragments.get(index).isAdded()) { mFragmentManager.beginTransaction().hide(fragments.get(currentFragment)).show (fragments.get(index)) .commitAllowingStateLoss(); } else { mFragmentManager.beginTransaction().hide(fragments.get(currentFragment)) .add(R.id.content, fragments.get(index)).commitAllowingStateLoss(); } currentFootIndex = index; } } /** * 注册广播 */ public void registerHeaderMessageReceiver() { mHeaderMessageReceiver = new HeaderMessageReceiver(); IntentFilter filter = new IntentFilter(); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); filter.addAction(TaskFragment.GET_RECEIVE_Task); this.registerReceiver(mHeaderMessageReceiver, filter); } /** * 接受广播 */ public class PicMessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (MineFragment.GET_RECEIVE_MONEY.equals(intent.getAction())) { setFootItemSelected(currentFootIndex, 1); footer_rb_money.setChecked(true); } } } }
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.yuqun.main.MainActivity"> <!--<include layout="@layout/top_title_layout" />--> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="50dp"> </FrameLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"> <include layout="@layout/footer_tap_layout" /> </RelativeLayout> </RelativeLayout>