@Override
  public boolean onOptionsItemSelected(MenuItem menuItem) {

    switch (menuItem.getItemId()) {
      case R.id.menu_item_new_memory:
        Memory memory = new Memory();
        try {
          MemoryList.get(getActivity()).addMemory(memory);
        } catch (IOException e) {
          e.printStackTrace();
        } catch (JSONException e) {
          e.printStackTrace();
        }
        Intent i = new Intent(getActivity(), MemoryPagerActivity.class);
        i.putExtra(MemoryFragment.EXTRA_MEMORY_ID, memory.getMemoryId());
        startActivityForResult(i, MEMORY_RETURN);
        Toast.makeText(getActivity(), "New Memory is created", Toast.LENGTH_LONG).show();
        return true;

      case R.id.menu_item_show_subtitle:
        if (getActivity().getActionBar().getSubtitle() == null) {
          getActivity().getActionBar().setSubtitle(R.string.Subtitle);
          menuItem.setTitle(R.string.hide_subtitle);
          subtitleVisability = true;
        } else {
          getActivity().getActionBar().setSubtitle(null);
          menuItem.setTitle(R.string.show_subtitle);
          subtitleVisability = false;
        }
        return true;
      default:
        return super.onOptionsItemSelected(menuItem);
    }
  }
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    setRetainInstance(true);
    subtitleVisability = false;
    getActivity().setTitle(R.id.memories_Title);
    try {
      memories = MemoryList.get(getActivity()).getMemories();
    } catch (IOException e) {
      e.printStackTrace();
    } catch (JSONException e) {
      e.printStackTrace();
    }

    // ArrayAdapter<Memory> arrayAdapter = new
    // ArrayAdapter<Memory>(getActivity(),android.R.layout.simple_list_item_1,memories);
    // setListAdapter(arrayAdapter);

    MemoryAdapter memoryAdapter = new MemoryAdapter(memories);
    setListAdapter(memoryAdapter);
  }
  @Override
  public boolean onContextItemSelected(MenuItem item) {

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    int position = info.position;
    MemoryAdapter memoryAdapter = (MemoryAdapter) getListAdapter();
    Memory memory = memoryAdapter.getItem(position);

    switch (item.getItemId()) {
      case R.id.menu_item_delete_memory:
        try {
          MemoryList.get(getActivity()).deleteMemory(memory);
        } catch (IOException e) {
          e.printStackTrace();
        } catch (JSONException e) {
          e.printStackTrace();
        }
        memoryAdapter.notifyDataSetChanged();
        return true;
    }

    return super.onContextItemSelected(item);
  }