2010-12-29 7 views
7

Mam problem z menu kontekstowym, mam kontrolę "ImageButton", gdy długie kliknięcie powoduje wyświetlenie menu kontekstowego.Pokaż menu kontekstowe z krótkim kliknięciem, nie długim kliknięciem

Chcę wyświetlić menu kontekstowe krótkim kliknięciem, a nie długim kliknięciem, czy jest to możliwe?

To jest kod, którego obecnie używam, menu działa idealnie.

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

     } 

    } 

Z góry dziękuję.

Odpowiedz

12

Jedynym sposobem mogę myśleć jest użycie onClickListener() jako część działalności:

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

Zamiast tworzenia nowego widoku specjalnie do tego, myślę, byłoby użyć niezależnie View chciałeś to dotyczyć. Mam nadzieję, że to właśnie zamierzacie i to pomaga.

+1

to działało dla Ciebie, prawda? – Matt

+1

działało idealnie, dzięki za wszystko Matt ... – seba123neo

+1

HURRAY! kodowanie wszystkiego najlepszego: 0) – Matt

0

bez dodawania OnClickListener w kodzie, można to zrobić tylko w xml.Just przejdź do ImageView i dodać:

android:onClick="openContextMenu" 

Oto przykład.

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