Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Usando onTouch y onCreateContextMenu al mismo tiempo

Estoy buscando para capturar las coordenadas de los usuarios toque evento (Para esto implementé el método onTouch ), pero también quiero mostrar un menú contextual cuando el usuario toca la pantalla.

Cuando se utilizan los métodos onTouch y onCreateContextMenu , cada evento táctil se envía al método onTouch . El método onCreateContextMenu nunca se llama. Supongo que esto es esperado. A continuación, intenté mostrar manualmente el menú contextual llamando a openContextMenu(v) en el método onTouch , esto funciona, pero el menú no desaparece de la pantalla después de la onContextItemSelected(MenuItem item) . Entonces, ¿cómo puedo hacer que esto funcione?

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.record_match); myCourtView = new MyImageView(getApplicationContext()); ll = (LinearLayout)findViewById(R.id.linearLayout); ll.addView(myCourtView, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); registerForContextMenu(myCourtView); myCourtView.requestFocus(); myCourtView.setOnTouchListener(this); }// End OnCreate // Implement the OnClickListener callback public boolean onTouch(View v, MotionEvent event) { //do something when user interacts with the court view myCourtView.processEvent(event); openContextMenu(v); myCourtView.invalidate(); return true; }//End OnClickListener @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.shot_entry_menu, menu); }//End onCreateContextMenu @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.player_1: //do something return true; case R.id.player_2: //do something else return true; } return true; }//End onContextItemSelected 

  • Nuevo PhoneGap 3.0 No se puede resolver la importación org.apache.cordova
  • ¿Es posible crear un HashMap que sea Parcelable en Android?
  • Guardar datos y cambiar la orientación
  • Android-Libgdx, Llamando a Otra Actividad después de que el Juego comience en Button click
  • Android studio: gradle error de dependencia
  • Cambiar ubicación predeterminada de los proyectos (o área de trabajo) en Android Studio
  • Cómo navegar a una actividad de los padres
  • Android OpenGL textura de origen no local utilizando Rajawali3D?
  • 3 Solutions collect form web for “Usando onTouch y onCreateContextMenu al mismo tiempo”

    Debe devolver false en onTouch:

    Verdad si el oyente ha consumido el evento, false de lo contrario.

    Para mí esta solución funciona:

     myCourtView.setOnTouchListener(new OnTouchListener() {public boolean onTouch(View v, MotionEvent ev) {}); 

    El descanso es el mismo

    Trate de poner esto en público booleano onTouch después de devolver verdadero; RegisterForContextMenu (this.getListView ());

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.