0

当用户在菜单窗口外单击时,我需要关闭上下文菜单。我该如何实施?在某些地方,我看到当用户在窗口外单击时,上下文菜单会关闭。或者有没有其他方法可以关闭上下文菜单。请帮助..thanks.my 代码在这里

selectedImageView = (ImageView) findViewById(R.id.selected_imageview);
    registerForContextMenu(selectedImageView);
}
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
    {

        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Post Image");
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.contextmenu, menu);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item)
    {
      switch (item.getItemId())
      {
          case R.id.take_photo:
              Intent intent = new Intent(this, Mag.class);
              this.startActivity(intent);
              break;
          case R.id.choose_gallery:
              Intent intent2 = new Intent(this, Mag1.class);
              this.startActivity(intent2);
              break;

          case R.id.share_cancel:
              Intent intent3 = new Intent(this, Mag2.class);
              this.startActivity(intent3);
              break;
          default:
            return super.onContextItemSelected(item);
      }
      return true;
    }
4

3 回答 3

1

无需为您的需要实现任何其他代码。

menu window当您在其块外单击时,Android 会自动关闭

于 2012-07-24T10:12:39.263 回答
1

试试这样

public static final int take_photo= Menu.FIRST;
public static final int choose_gallery= Menu.FIRST+1;
public static final int share_cancel= Menu.FIRST+2;


@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {     

    menu.add(0,take_photo, 0, "take_photo");

    menu.add(0, choose_gallery, 0, "choose_gallery");  

    menu.add(0, share_cancel, 0, "share_cancel");  
}
@Override
public boolean onContextItemSelected(MenuItem item) {        ;
    onOptionsItemSelected(item);
    return true;
}

  public boolean onOptionsItemSelected(MenuItem item) {

   switch (item.getItemId())
  {
      case R.id.take_photo:
          Intent intent = new Intent(this, Mag.class);
          this.startActivity(intent);
          break;
      case R.id.choose_gallery:
          Intent intent2 = new Intent(this, Mag1.class);
          this.startActivity(intent2);
          break;

      case R.id.share_cancel:
          Intent intent3 = new Intent(this, Mag2.class);
          this.startActivity(intent3);
          break;
      default:
        return super.onContextItemSelected(item);
  }
  return true;

}
于 2012-07-24T10:13:24.607 回答
0

Android 在 pre-ics 版本上不提供此行为,因此必须编写额外的代码来完成此操作。

于 2012-08-28T08:30:29.243 回答