@Override
 public boolean onOptionsItemSelected(MenuItem item) {
   switch (item.getItemId()) {
     case R.id.exit:
       finish();
       return true;
     case R.id.save:
       try {
         Results.getInstance().saveCurrentResults();
         finish();
       } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       }
       return true;
     case R.id.help:
       new HelpDialog(this, this.getText(R.string.listCreatorHelpMessage).toString()).show();
       return true;
     default:
       return super.onOptionsItemSelected(item);
   }
 }
  @Override
  public void onCreate(Bundle savedInstance) {

    super.onCreate(savedInstance);
    mContext = this;

    setContentView(R.layout.display_results);
    View v = getLayoutInflater().inflate(R.layout.display_results_buttons_bottom, null);
    mAddItem = (Button) v.findViewById(R.id.addButton);
    mAddItem.setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {
            Intent in = new Intent(ShopAndShare.sContext, AddItem.class);
            startActivity(in);
            finish();
          }
        });
    mShare = (Button) v.findViewById(R.id.shareButton);
    mShare.setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {
            // Only allow the user to continue if there is network access
            if (isNetworkAvailable()) {
              if (isResultsPopulated()) {
                Intent in = new Intent(ShopAndShare.sContext, Share.class);
                startActivity(in);
              } else {
                new AlertDialog.Builder(mContext)
                    .setTitle(R.string.emptyResult)
                    .setMessage(mContext.getText(R.string.emptyResultMessage))
                    .show();
              }
            } else
              new AlertDialog.Builder(mContext)
                  .setTitle(R.string.networkDisabled)
                  .setMessage(mContext.getText(R.string.networkDisabledMessage))
                  .show();
          }
        });
    this.getListView().addFooterView(v);

    ArrayList<Item> products = new ArrayList<Item>();

    // If out activity has been started from the Take Photo chain, we should
    // check for an empty result
    if (this.getIntent().getBooleanExtra("Take Photo", false)
        && Results.getInstance().getProducts().isEmpty()) {
      Intent in = new Intent(ShopAndShare.sContext, EmptyResult.class);
      startActivity(in);
      finish();
    }

    Iterator i = Results.getInstance().getProducts().entrySet().iterator();

    while (i.hasNext()) {
      Map.Entry x = (Map.Entry) i.next();
      products.add((Item) x.getValue());
    }

    ItemAdapter adap = new ItemAdapter(this, R.layout.display_results_row, products);
    setListAdapter(adap);
  }
 /**
  * Returns a boolean on whether Results is populated or not
  *
  * @return boolean
  */
 private boolean isResultsPopulated() {
   if (Results.getInstance().getProducts().isEmpty()) return false;
   else return true;
 }