to top
Android APIs
 

ContentActivity.java

← Back

The file containing the source code shown below is located in the corresponding directory in <sdk>/samples/android-<version>/...

// Copyright 2011 Google Inc. All Rights Reserved.

package com.example.android.hcgallery;

import android.app.Activity;
import android.os.Bundle;

/** This is a shell activity that hosts ContentFragment when the device screen
 * is smaller than "large".
 */
public class ContentActivity extends Activity {
  private int mThemeId = 0;

  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      Bundle extras = getIntent().getExtras();
      if (extras != null) {
          // The activity theme is the only state data that the activity needs
          // to restore. All info about the content displayed is managed by the fragment
          mThemeId = extras.getInt("theme");
      } else if (savedInstanceState != null) {
          // If there's no restore state, get the theme from the intent
          mThemeId = savedInstanceState.getInt("theme");
      }

      if (mThemeId != 0) {
          setTheme(mThemeId);
      }

      setContentView(R.layout.content_activity);

      if (extras != null) {
        // Take the info from the intent and deliver it to the fragment so it can update
        int category = extras.getInt("category");
        int position = extras.getInt("position");
        ContentFragment frag = (ContentFragment) getFragmentManager().findFragmentById(R.id.content_frag);
        frag.updateContentAndRecycleBitmap(category, position);
      }
  }

  @Override
  protected void onSaveInstanceState(Bundle outState) {
      super.onSaveInstanceState(outState);
      outState.putInt("theme", mThemeId);
  }
}