Spanish Comprobar en ListView si existe un item determinado

desof

Well-Known Member
Licensed User
Longtime User
Hola,

Voy cargando articulos en un ListView a medida que el usuario presiona un botón pero necesito comprobar en el LISTVIEW si ese articulo ya no existe para no volverlo a agregar y SI INCREMENTARLE uno en la 2° Línea.

ME AYUDAN?

B4X:
CargaArticulo (1,lbC.Text)

Sub CargaArticulo(cantidad As String ,articulo As String)
Dim eXISTE As Boolean   

   
   If eXISTE Then
      'SI EXISTE EN EL LISTV AGREGARLE UNO A LA CANTIDAD
      l1.AddTwoLines2 (cantidad + 1 , articulo, cantidad + 1)
   Else
      'SI NO EXISTE AGREGARLO
      l1.AddTwoLines2(cantidad, articulo, cantidad)
   End If

   
End Sub
 

desof

Well-Known Member
Licensed User
Longtime User

Ok! pero y como le modifico el numero a ese valor de la lista.
¿Como se edita un iten no encuentro la vuelta?
 

desof

Well-Known Member
Licensed User
Longtime User
No se puede editar un item del listview, tendrías que borrarlos todos y volver a cargarlos con el item ya modificado

???? que extraño como es posible esto ...
Bueno amigo gracias vere como desarrollar una estrategia con algun listv duplicado oculto.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

Tienes una solucion facil

Si quieres modificar ese item, primero lo buscas, cuando sepas el indice lo borras, y creas uno nuevo con los valores cambiados.

Seria algo asi:

B4X:
dim id as int

id= ComprobarExisteItem (articulo)

' si es diferente a -1 es que encontró el articulo
if id <> -1 then
  ' aqui añades el articulo cambiado o creas el codigo que te interese
  ..............
  .............
  l1.RemoveAt (id)  ' borramos el item encontrado
  
end if




sub  ComprobarExisteItem (articuloIn as string) as int

dim retorno as int
dim  articulo, Itemlista  as string

articulo= articuloIn

retorno = -1  ' devuelve esto si no encuentra item

For n=0 to l1.size-1 ' recuerda que el item 0 existe
  itemlista = l1.GetItem(n)
  if  itemlista.ToLowerCase = articulo.ToLowerCase then
  ' si quieres que compruebe nombres en mayusculas o minusculas puedes poner la linea de abajo y quitar los string
  ' if  l1.GetItem(n) = articuloIn then
    retorno = n     
    exit  ' sale del bucle for next para ir mas rápido 
  End If 
Next

return retorno

end sub


Saludos:

Jesús
 

Gustavo

Member
Licensed User
Longtime User
hola viendo esto les hago una pregunta yo quiero que vaya a al item de la listview pero que no me lo traiga, como hago, gracias
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…