package hk.hku.cs.srli.monkeydemo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.view.MenuItem; import hk.hku.cs.srli.monkeydemo.demo.DemoContent; import hk.hku.cs.srli.monkeydemo.demo.DemoFragmentBase; import hk.hku.cs.srli.monkeydemo.demo.DemoContent.DemoItem; /** * An activity representing a single demo screen. This activity is only * used on handset devices. On tablet-size devices, item details are presented * side-by-side with a list of items in a {@link DemoListActivity}. * <p> * This activity is mostly just a 'shell' activity containing nothing more than * a {@link DemoFragmentBase}. */ public class SingleDemoActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_single_demo); // Show the Up button in the action bar. getActionBar().setDisplayHomeAsUpEnabled(true); // savedInstanceState is non-null when there is fragment state // saved from previous configurations of this activity // (e.g. when rotating the screen from portrait to landscape). // In this case, the fragment will automatically be re-added // to its container so we don't need to manually add it. if (savedInstanceState == null) { // Create the detail fragment and add it to the activity // using a fragment transaction. final String demoId = getIntent().getStringExtra(DemoFragmentBase.ARG_ITEM_ID); DemoItem demo = DemoContent.ITEM_MAP.get(demoId); setTitle(demo.title); DemoFragmentBase fragment = demo.fragment; Bundle arguments = new Bundle(); arguments.putString(DemoFragmentBase.ARG_ITEM_ID, demoId); fragment.setArguments(arguments); getFragmentManager().beginTransaction() .add(R.id.single_demo, fragment) .commit(); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // This ID represents the Home or Up button. In the case of this // activity, the Up button is shown. Use NavUtils to allow users // to navigate up one level in the application structure. For // more details, see the Navigation pattern on Android Design: NavUtils.navigateUpTo(this, new Intent(this, DemoListActivity.class)); return true; } return super.onOptionsItemSelected(item); } }