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


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?

  • Campos personalizados para un tipo de compilación en gradle
  • Android FingerPaint Deshacer / Rehacer la implementación
  • Al ser dicho proyecto no está usando el sistema de compilación gradle cuando es
  • FragmentPagerAdapter notifyDataSetChanged no funciona
  • ¿Retrofit hace llamadas de red en el hilo principal?
  • Vista de desplazamiento superpuesta con AppBarLayout
  • Transmitir video en vivo de un teléfono a otro utilizando socket fd
  • Android: cómo reproducir video de los activos?
  • Kotlin: ¿Qué significa "return @"?
  • Android: EditText - varias líneas y android: inputType
  • El teclado virtual se superpone a EditTextPreferenceDialogFragmentCompat cuando AppTheme es translúcido
  • Cómo detener el teclado virtual que se muestra automáticamente cuando se cambia el enfoque (evento OnStart)
  • 5 Solutions collect form web for “Establecer oyente de clic largo para listview”

    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.

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