tutorial listfragment item example android android-fragments long-click

android - item - Largo clic en ListFragment



example fragment android (3)

Dependiendo de lo que quiera realizar, puede usar los métodos dados para menús de contexto:

Primero registre la clase View que se mantiene presionada durante mucho tiempo (dentro de su clase Fragment):

@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); registerForContextMenu(this.getListView()); }

Luego implemente estos dos métodos para crear un menú contextual y hacer lo que quiera cuando se hace clic en un elemento del menú:

@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = this.getActivity().getMenuInflater(); inflater.inflate(R.menu.my_context_menu, menu); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.add: // <-- your custom menu item id here // do something here return true; default: return super.onContextItemSelected(item); } }

Estoy trabajando con un ListFragment y haciendo un onListItemClick. Todo funciona bien, pero ahora quiero utilizar un Item Click largo (por ejemplo, setOnItemLongClickListener (nuevo OnItemLongClickListener () para una actividad). ¿Cómo puedo usar esto en mi fragmento?

¡Gracias!


Esto funciona para mí

getListView().setOnItemLongClickListener(new OnItemLongClickListener() { public boolean onItemLongClick(AdapterView<?> av, View v, int position, long id) { //Get your item here with the position return true; } });


Sí, la solución publicada por tsync funciona para mí. Yo también había tenido el mismo problema y consideraba que esto no era posible. Probé la sugerencia anterior de la siguiente manera:

public class ProjectsFragment extends ListFragment { @Override public void onActivityCreated(Bundle savedState) { super.onActivityCreated(savedState); getListView().setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Toast.makeText(getActivity(), "On long click listener", Toast.LENGTH_LONG).show(); return true; } });

¡Y funcionó!