2010-12-29 16 views
7

Ho un problema con il menu contestuale, ho un controllo "ImageButton" quando fai un clic lungo mostra un menu contestuale.Mostra menu contestuale con un clic breve non lungo Click

Ho bisogno di visualizzare il menu contestuale con un clic breve, non un clic lungo, è possibile?

Questo è il codice che uso attualmente, il menu funziona perfettamente.

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

     } 

    } 

Grazie in anticipo.

risposta

12

L'unico modo che posso pensare è quello di utilizzare un onClickListener() come parte dell'attività:

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

Invece di creare una nuova vista appositamente per questo, credo che si dovrebbe usare qualunque View si voleva questo da applicare a. Spero che questo sia quello che stavi cercando e che questo aiuti.

+1

questo ha funzionato per voi, giusto? – Matt

+1

ha funzionato perfettamente, grazie per tutto Matt ... – seba123neo

+1

HURRAY! codice di buona fortuna: 0) – Matt

0

senza aggiungere alcun OnClickListener nel codice, è possibile farlo solo in xml.Just vai al tuo ImageView e aggiungere:

android:onClick="openContextMenu" 

Ecco un esempio.

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