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ó!