2010-12-29 11 views
7

Tengo un problema con el menú contextual, tengo un control "ImageButton" cuando hace un clic largo muestra un menú contextual.Mostrar menú contextual con clic corto no largo Haga clic en

Necesito mostrar el menú contextual con un clic corto, no un clic largo, ¿es esto posible?

Este es el código que uso actualmente, el menú funciona perfectamente.

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(); 

     } 

    } 

Gracias de antemano.

Respuesta

12

La única manera que se me ocurre es utilizar un OnClickListener() como parte de la actividad:

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); 
} 
} 

En lugar de crear una nueva vista específicamente para esto, supongo que usaría lo que sea Ver querías esto para aplicar a. Espero que esto sea lo que estabas buscando y que esto ayude.

+1

esto funcionó para usted, ¿no? – Matt

+1

funcionó perfectamente, gracias por todo Matt ... – seba123neo

+1

HURRAY! mejor suerte de codificación: 0) – Matt

0

sin añadir ningún OnClickListener en el código, puede hacerlo sólo en el xml.Just Cesta de la ImageView y añadir:

android:onClick="openContextMenu" 

Aquí se muestra un ejemplo.

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