2013.12.04 (5)——— android SlidingMenu之FragmentChangeActivity

package com.jeremyfeinstein.slidingmenu.example.fragments;import android.os.Bundle;import android.support.v4.app.Fragment;import com.jeremyfeinstein.slidingmenu.example.BaseActivity;import com.jeremyfeinstein.slidingmenu.example.R;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;public class FragmentChangeActivity extends BaseActivity {private Fragment mContent;public FragmentChangeActivity() {super(R.string.changing_fragments);}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// set the Above Viewif (savedInstanceState != null)mContent = getSupportFragmentManager().getFragment(savedInstanceState, "mContent");if (mContent == null)mContent = new ColorFragment(R.color.red);// set the Above ViewsetContentView(R.layout.content_frame);getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, mContent).commit();// set the Behind ViewsetBehindContentView(R.layout.menu_frame);getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame, new ColorMenuFragment()).commit();// customize the SlidingMenugetSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);}@Overridepublic void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);getSupportFragmentManager().putFragment(outState, "mContent", mContent);}public void switchContent(Fragment fragment) {mContent = fragment;getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();getSlidingMenu().showContent();}}


package com.jeremyfeinstein.slidingmenu.example.fragments;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.ListFragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ListView;import com.jeremyfeinstein.slidingmenu.example.R;public class ColorMenuFragment extends ListFragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {return inflater.inflate(R.layout.list, null);}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);String[] colors = getResources().getStringArray(R.array.color_names);ArrayAdapter<String> colorAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, colors);setListAdapter(colorAdapter);}@Overridepublic void onListItemClick(ListView lv, View v, int position, long id) {Fragment newContent = null;switch (position) {case 0:newContent = new ColorFragment(R.color.red);break;case 1:newContent = new ColorFragment(R.color.green);break;case 2:newContent = new ColorFragment(R.color.blue);break;case 3:newContent = new ColorFragment(android.R.color.white);break;case 4:newContent = new ColorFragment(android.R.color.black);break;}if (newContent != null)switchFragment(newContent);}// the meat of switching the above fragmentprivate void switchFragment(Fragment fragment) {if (getActivity() == null)return;if (getActivity() instanceof FragmentChangeActivity) {FragmentChangeActivity fca = (FragmentChangeActivity) getActivity();fca.switchContent(fragment);} else if (getActivity() instanceof ResponsiveUIActivity) {ResponsiveUIActivity ra = (ResponsiveUIActivity) getActivity();ra.switchContent(fragment);}}}



这个例子主要介绍了,如何实现主界面fragmen的切换

1、在侧边栏的Fragment里面

private void switchFragment(Fragment fragment) {if (getActivity() == null)return;if (getActivity() instanceof FragmentChangeActivity) {FragmentChangeActivity fca = (FragmentChangeActivity) getActivity();fca.switchContent(fragment);} else if (getActivity() instanceof ResponsiveUIActivity) {ResponsiveUIActivity ra = (ResponsiveUIActivity) getActivity();ra.switchContent(fragment);}}


调用上层activity的switchContent方法

public void switchContent(Fragment fragment) {mContent = fragment;getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();getSlidingMenu().showContent();}


更多相关文章

  1. Android实现乘法小例子(两个Activity)
  2. Android一个等待进度条的例子
  3. Android Dialog 对话框例子
  4. 地图入门(一):Android上使用Google Maps加标注的最最简单的例子
  5. Android]仿通讯录ListView小例子
  6. android SlidingMenu 侧边菜单划出后剩余部分阴影设置
  7. 最简单的基于FFmpeg的移动端例子:Android 视频解码器-单个库版
  8. android报表例子

随机推荐

  1. android中按键的扫描码和键值
  2. android布局文件 在使用singleLine时遇到
  3. uses-permission 与 android:maxSdkVersi
  4. Android手动绘制ninepath(.9.png)图片
  5. 简述Android(安卓)Android(安卓)studio快
  6. Android(安卓)手势操作识别
  7. android TabHost 转
  8. android安装sdk详解
  9. Android(安卓)PullToRrefresh 自定义下拉
  10. Android(安卓)Jetpack 最佳开发姿势