// so there is question of checking for existing items (auto-completion?)
  // and uploading sounds and images ...
  public void onClick(View v) {
    EditText cueInput = (EditText) findViewById(R.id.cue);
    EditText responseInput = (EditText) findViewById(R.id.response);
    Spinner posInput = (Spinner) findViewById(R.id.pos);
    EditText characterResponseInput = (EditText) findViewById(R.id.response_character);
    EditText characterCueInput = (EditText) findViewById(R.id.cue_character);
    final String cue = cueInput.getText().toString();
    final String response = responseInput.getText().toString();
    final String pos = posInput.getSelectedItem().toString();
    final String character_cue = characterCueInput.getText().toString();
    final String character_response = characterResponseInput.getText().toString();
    String pos_code = Utils.POS_MAP.get(pos);
    if (TextUtils.isEmpty(pos_code)) {
      pos_code = "NONE";
    }
    final String final_pos_code = pos_code;

    if (Main.isNotLoggedIn(this)) {
      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setClassName(this, LoginActivity.class.getName());
      intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); // avoid
      // navigation
      // back to this?
      LoginActivity.return_to = CreateItemActivity.class.getName();
      LoginActivity.params = new HashMap<String, String>();
      LoginActivity.params.put("list_id", list_id);
      LoginActivity.params.put("cue", cue);
      LoginActivity.params.put("response", response);
      LoginActivity.params.put("cue_language", cue_language);
      LoginActivity.params.put("response_language", response_language);
      LoginActivity.params.put("pos", pos);
      LoginActivity.params.put("character_cue", character_cue);
      LoginActivity.params.put("character_response", character_response);
      startActivity(intent);
    } else {
      // TODO cue and response languages need to be inferred from list we are
      // adding to ... Might want to fix those, i.e. not allow variation
      // on
      // search ...
      // TODO wondering whether there is some way to edit existing items
      // ...

      final ProgressDialog myOtherProgressDialog = new ProgressDialog(this);
      myOtherProgressDialog.setTitle("Please Wait ...");
      myOtherProgressDialog.setMessage("Creating Item ...");
      myOtherProgressDialog.setIndeterminate(true);
      myOtherProgressDialog.setCancelable(true);

      final Thread create_item =
          new Thread() {
            public void run() {
              // TODO make this interruptable .../*if
              // (!this.isInterrupted())*/
              CreateItemActivity.create_item_result =
                  createItem(
                      cue,
                      cue_language,
                      character_cue,
                      final_pos_code,
                      response,
                      response_language,
                      character_response,
                      list_id);

              myOtherProgressDialog.dismiss();
            }
          };
      myOtherProgressDialog.setButton(
          "Cancel",
          new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
              create_item.interrupt();
            }
          });
      OnCancelListener ocl =
          new OnCancelListener() {
            public void onCancel(DialogInterface arg0) {
              create_item.interrupt();
            }
          };
      myOtherProgressDialog.setOnCancelListener(ocl);
      myOtherProgressDialog.show();
      create_item.start();
    }
  }