0

ユーザーがメニュー ウィンドウの外側をクリックしたときに、コンテキスト メニューを閉じる必要があります。どうすれば実装できますか?いくつかの場所で、ユーザーがウィンドウの外側をクリックすると contextmenu が閉じられるのを見てきました。または、コンテキストメニューを閉じる他の方法はありますか? 助けてください..thanks.私のコードはここにあります

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

必要なもののために他のコードを実装する必要はありません。

Androidmenu windowは、ブロックの外側をクリックすると自動的に閉じる機能を提供します

于 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 は、ics より前のバージョンではこの動作を提供しないため、これを行うには追加のコードを記述する必要があります。

于 2012-08-28T08:30:29.243 に答える