コード例 #1
0
  @Override
  public boolean onContextItemSelected(final MenuItem item) {
    final AdapterView.AdapterContextMenuInfo info =
        (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

    switch (item.getItemId()) {
      case R.id.menu_uninstall:
        startActivityForResult(
            new Intent(Intent.ACTION_DELETE, Uri.parse("package:" + model.getPackage(info.id))),
            (int) (2000 + info.id));

        break;

      case R.id.menu_activate:
        model.togglePlugin(info.id);

        adapter.notifyDataSetChanged();

        break;

      case R.id.menu_report:
        final Intent sendIntent = new Intent(Intent.ACTION_SEND);
        sendIntent.putExtra(
            Intent.EXTRA_SUBJECT, "Announcify - Problem using " + model.getName(info.id));
        sendIntent.putExtra(Intent.EXTRA_TEXT, "");
        sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"*****@*****.**"});
        sendIntent.setType("message/rfc822");
        startActivity(sendIntent);

        break;
    }

    return true;
  }
コード例 #2
0
  @Override
  protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode > 2000) {
      try {
        getPackageManager().getPackageGids(model.getPackage(requestCode - 2000));
      } catch (final NameNotFoundException e) {
        model.remove(requestCode - 2000);
      }
    }
  }