2010-12-29 11 views
7

コンテキスト・メニューに問題があります。長いクリックでコンテキスト・メニューを表示すると、コントロール「ImageButton」があります。ショート・クリックではなくショート・クリックでコンテキスト・メニューを表示

私は短いクリックでコンテキストメニューを表示する必要がありますが、これは可能でしょうか?

これは現在使用しているコードです。メニューは完全に機能します。

private ImageView btnRutas; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.fclientes); 

     btnRutas =(ImageView)findViewById(R.id.btnRutas); 

     btnRutas.setOnClickListener(this); 

     registerForContextMenu(btnRutas); 

    } 

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

     if(v.getId()== R.id.btnRutas) { 

      menu.setHeaderIcon(android.R.drawable.ic_menu_more); 
      menu.setHeaderTitle("Rutas"); 
      menu.add(0, 0, 0, "Ruta 1"); 

     } 

     super.onCreateContextMenu(menu, v, menuInfo); 
    } 

    @Override 
    public boolean onContextItemSelected(MenuItem item) { 

    switch (item.getItemId()){ 

    case 0: 

     function(); 

     } 

    } 

ありがとうございます。私は考えることができる

答えて

12

唯一の方法は、活動の一環としてonClickListener()を使用することです。このために特別に新しいビューを作成するのではなく、

public class MyActivity extends Activity implements OnClickListener{ 
protected void onCreate(Bundle bundle) { 
    //Usual Activity Stuff 
    View v = (View)findViewById(R.id.view); 
    v.setOnClickListener(this); 
} 

public void onClick(View v) { 
    super.onClick(v); 
    this.openContextMenu(v); 
} 
} 

、私はあなたが望んでいたものは何でもビューを使用すると思いますこれを適用する。私はこれがあなたが進めてきたことであり、これが役立つことを願っています。

+1

これはあなたのために正しく機能しましたか? – Matt

+1

完璧に働いて、すべてのおかげでマット... – seba123neo

+1

ハレー!最高の運がコーディング:0) – Matt

0

コード内の任意のOnClickListenerを追加することなく、あなたのImageViewのに移動し、追加のみxml.Justでそれを行うことができます:ここで

android:onClick="openContextMenu" 

は一例です。

  <ImageView 
      android:id="@+id/btnRutas" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="openContextMenu" />