Establecer oyente de clic largo para listview

Tengo debajo de códigos:

public class MainActivity extends ListActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } protected void onListItemClick(ListView l, View v, final int position, long id) { super.onListItemClick(l, v, position, id); }} 

Necesito cambiar esto a onListItemLongClick () pero ¿cómo? ¿Es posible?

Su pregunta es muy similar a ésta , pero parece que no es un duplicado exacto.

Lo que has notado es que la clase ListActivity no tiene una anulación de método específicamente para este caso.

Para agregar esta funcionalidad como una anulación de método, la clase debe implementar la interfaz AdapterView.OnItemLongClickListener y, a continuación, puede agregar el método onItemLongClick() override, que actúa igual que el método onListItemClick() que ya tiene, pero que responde Clics largos.

Sólo asegúrate de seguir las instrucciones de esta respuesta , debes usar android:longClickable="true" en el layout xml, o llamar a listview.setLongClickable(true);

Ejemplo:

 public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener { ListView listview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView listview = (ListView) findViewById(R.id.list); listview.setLongClickable(true); } @Override public boolean onItemLongClick(AdapterView<?> l, View v, final int position, long id) { Toast.makeText(this, "long clicked pos: " + position, Toast.LENGTH_LONG).show(); return true; } protected void onListItemClick(ListView l, View v, final int position, long id) { super.onListItemClick(l, v, position, id); Toast.makeText(this, "short clicked pos: " + position, Toast.LENGTH_LONG).show(); } //.................... 

Simplemente puede hacerlo con setOnItemLongClickListener

 listview.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Toast.makeText(ClassName.class, "Long Clicked Trigger: ", Toast.LENGTH_LONG).show(); return true; } }); 

prueba esto

 listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { public boolean onItemLongClick(AdapterView<?> arg0, View v, int index, long arg3) { // write your code return false; }}); 

Podría implementar el listener, entonces la devolución de llamada aparecería como una función (método) en su clase:

 public class MainActivity extends ListActivity implements View.OnLongClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View listView = findViewById(R.id.list_view); listView.setOnLongClickListener(this); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); } @Override public boolean onLongClick(View v) { // Do your work here return false; } } 

Sí es posible y muy fácil de lograr simplemente tienes que hacer la instancia de la listview como

 ListView lv = (ListView)findViewById(R.id.listview); lv.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View return true; } });) 

En su caso en lugar de extender ListActivity puede hacer una vista de lista en xml y encontrar la vista en MainActivity y seguir el paso anterior.

  • Android EditText: perder el enfoque después de la entrada
  • Detector de gestos no funciona
  • Cómo anular el registro de escuchas y detener el servicio desde dentro de broadcastreceiver
  • ¿Hay alguna clase en Java similar a android.os.Handler en Android?
  • MotionEvent.ACTION_UP en la vista de texto
  • ¿Cómo se escucha el progreso de Android SyncAdapter?
  • ¿Cómo detectar pulsaciones de teclas de caracteres?
  • Android GridView OnItemLongClick escuchador llamado después de OnItemClick
  • Cómo establecer el evento onClick en un ImageButton?
  • ListView no se desplaza dentro de la aleta de vista en android
  • Audiencia de eventos personalizada en la aplicación para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.