Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/01/2015, 03:34
Macas
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años
Puntos: 0
Click y LongClick list view

Buenas de nuevo,

Estoy intentando implementar las acciones de click y long click dentro de una list view.

Mi classe extiende de fragment, lo comento porque no se si tendrá algo que ver, ya que implementar estas 2 funciones no creo que sean muy complicadas.
El problema que tengo que después de implementar las 2 si hago un longClick después de soltar me hace la acción de click, es decir si hago long me hace las 2.

No se donde tengo el problema, este es mi código.
Código Java:
Ver original
  1. @Override
  2.     public View onCreateView(LayoutInflater inflater, ViewGroup container,
  3.             Bundle savedInstanceState) {
  4.        
  5.  
  6.         View rootView = inflater.inflate(R.layout.list, container, false);
  7.        
  8.         ListView lv = (ListView) rootView.findViewById(R.id.LstOpciones);
  9.        
  10.         mFotosAdapter = new GaleriaAdapter(getActivity());
  11.        
  12.          storageDir = Environment.getExternalStoragePublicDirectory(
  13.                 Environment.DIRECTORY_DCIM + DIRECTORY_PICTURES).toString();
  14.        
  15.         // Leer todas las fotos del directoria y a�adirlas al array
  16.         mFotosAdapter.addAllViews(storageDir);
  17.        
  18.         lv.setAdapter(mFotosAdapter);
  19.        
  20.         lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
  21.  
  22.             public boolean onItemLongClick(AdapterView<?> arg0, View v,
  23.                     int position, long arg3) {
  24.                 AlertDialog.Builder adb=new AlertDialog.Builder(getActivity());
  25.                 adb.setTitle("Eliminar?");
  26.                 adb.setMessage("Estas seguro que quieres eliminar " + position);
  27.                 final FotoRecord fotoItem = (FotoRecord) mFotosAdapter.getItem(position);
  28.                 adb.setNegativeButton("Cancel", null);
  29.                 adb.setPositiveButton("Ok", new AlertDialog.OnClickListener() {
  30.                     public void onClick(DialogInterface dialog, int which) {
  31.                         mFotosAdapter.remove(fotoItem);
  32.                      
  33.                     }});
  34.                 adb.show();
  35.                 Toast.makeText(getActivity(),String.valueOf(position), Toast.LENGTH_LONG).show();
  36.                 return false;
  37.             }
  38.         });
  39.        
  40.        
  41.        
  42.        
  43.         lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
  44.            
  45.             @Override
  46.             public void onItemClick(AdapterView<?> parent, View view,
  47.                     int position, long id) {
  48.                
  49.                 FotoRecord fotoItem = (FotoRecord) mFotosAdapter.getItem(position);
  50.                 Log.i("StarageDIR: ",storageDir );
  51.                 Log.i("StarageDIR: ",fotoItem.getImageUrl() );
  52.                 File file = new File(fotoItem.getImageUrl());
  53.                 if (file.exists()) {
  54.                     UploaderFoto nuevaTarea = new UploaderFoto(getActivity());
  55.                     nuevaTarea.execute(fotoItem.getImageUrl());
  56.                 }
  57.                 Toast.makeText(getActivity(), "Has pulsado el elemento " + String.valueOf(position) + " de la lista.", Toast.LENGTH_LONG).show();
  58.                
  59.             }
  60.  
  61.         });
  62.        
  63.         return rootView;
  64.     }

En algunos sitios comentan que para que funcione hay que poner en el xml correspondiente la propiedad android:longClickable="true", pero si lo pongo luego el click no me funciona.

Alguna ayudita! Gracias.