savedInstanceState值始终为null

时间:2014-08-13 07:09:39

标签: android fragment android-fragmentactivity

总是我得到savedInstanceState值为null。

protected void onCreate(Bundle savedInstanceState) 
{ 
   super.onCreate(savedInstanceState);
}

此活动是我的应用程序的启动器活动。请让我知道如何解决这个问题。如果我获得NULL值意味着我无法为我的应用程序实现片段

     public  class SlidingActivity  extends Activity implements OnClickListener {
    private static final String TAG = null;
 private DrawerLayout mDrawerLayout;
 private ListView mDrawerList;
  private ActionBarDrawerToggle mDrawerToggle;
  Button b_project,b_info,b_activity,b_contact;
private CharSequence mDrawerTitle;
 private CharSequence mTitle;
 private String[] navMenuTitles;
 private TypedArray navMenuIcons;
private ArrayList<NavDrawerItem> navDrawerItems;
 private NavDrawerListAdapter adapter;
  @Override
 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sliding_menu);

navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
navMenuIcons = getResources()
        .obtainTypedArray(R.array.nav_drawer_icons);

mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.list_slidermenu);

navDrawerItems = new ArrayList<NavDrawerItem>();
navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));
navMenuIcons.recycle();
mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
adapter = new NavDrawerListAdapter(getApplicationContext(),
        navDrawerItems);
mDrawerList.setAdapter(adapter);
Log.d(TAG, "mDrawerList:)  ::: " + mDrawerList);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
        R.drawable.ic_drawer,
        R.string.app_name, 
        R.string.app_name 
){
    public void onDrawerClosed(View view) {
        getActionBar().setTitle(mTitle);
        // calling onPrepareOptionsMenu() to show action bar icons
        invalidateOptionsMenu();
    }

    public void onDrawerOpened(View drawerView) {
        getActionBar().setTitle(mDrawerTitle);
        // calling onPrepareOptionsMenu() to hide action bar icons
        invalidateOptionsMenu();
    }
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
 if (savedInstanceState == null) {
    // on first time display view for first nav item
    displayView(0);
}
 }

 /**
  * Slide menu item click listener
 * */
 private class SlideMenuClickListener implements
    ListView.OnItemClickListener {
private final String TAG = null;

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    // display view for selected nav drawer item
    displayView(position);
    Log.d(TAG, "value:)  ::: " + position);
}
 }

   @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
 }

      @Override
     public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
    return true;
}
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.action_settings:
    return true;
default:
    return super.onOptionsItemSelected(item);
}
}

     /***
 * Called when invalidateOptionsMenu() is triggered
     */
   @Override
  public boolean onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
   }

 private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
 fragment = new ProjTypeFragment();
 break;
case 1:
    fragment = new VideoFragment();
    break;
case 2:
    fragment = new FloorPlanFragment();
    break;
case 3:
    fragment = new AmenetiesFragment();
    break;
case 4:
    fragment = new LocationFragment();
    break;
case 5:
    fragment = new SiteVisitFragment();
    break;
case 6:
    fragment = new GeneralFragment();
    break;

default:
    break;
}

if (fragment != null) {
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction()
            .replace(R.id.frame_container, fragment).commit();
     mDrawerList.setItemChecked(position, true);
    mDrawerList.setSelection(position);
    setTitle(navMenuTitles[position]);
    mDrawerLayout.closeDrawer(mDrawerList);
} else {
     Log.e("SlidingActivity", "Error in creating fragment");
}
}


     @Override
      public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
      }

      @Override protected void onPostCreate(Bundle savedInstanceState) {      super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); }

      @Override
         public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
     }

      }

0 个答案:

没有答案