Spanish Obtener item seleccionado en listview

ferpahud

Active Member
Licensed User
Hola buenos dias,

Supongamos que cargo registros de una base de datos en un listview:
B4X:
c=s.ExecQuery("SELECT * FROM sesion ORDER BY fechaInicio DESC")
    ListView1.Clear
   
    If c.RowCount>0 Then
    For i=0 To c.RowCount-1
        c.Position=i
       
        ListView1.AddTwoLines (c.GetString("usuario"), "Fecha: " & c.GetString("fechaInicio") &" Estado: "& c.GetString("estado") &" ID: "& c.GetString("id"))
    Next
    End If

Como hago para identificar a que item de la lista se le da clic? En caso de poder hacerlo, como modifico o elimino ese item?

Desde ya muchas gracias, salduos!
 

samperizal

Active Member
Licensed User
Longtime User
Saludos.

Creo que modificar no se puede pero con guardar el dato modificado en la tabla de la base de datos y volver a cargar el listview lo puedes solucionar


para identificar el item seleccionado con los eventos.


ListView1_ItemClick (Position As Int, Value As Object)


ListView1_ItemLongClick (Position As Int, Value As Object)


para remover del listview

ListView1.RemoveAt(Position)

para leer los datos del listview

Sub GlobalsType ListViewData (FirstRow AsString, SecondRow AsString)End Sub

Dim lvd As ListViewData
lvd = Value
variable1 = lvd.linea_1 para la linea 1
variable2 = lvd.linea_1 para la linea 2


Espero que te sirva
 

ferpahud

Active Member
Licensed User

Perfecto, muchas gracias por tu ayuda, pude lograr lo que queria, borrar de la base de datos el item seleccionado en el listview.

Dejo el codigo de ejemplo por si a alguien le sirve a futuro:
B4X:
Sub ListView1_ItemClick (Position As Int, Value As Object)
    s.ExecNonQuery("DELETE FROM Cliente WHERE Cliente.Id = '" & Value & "'")
    listarClientes
End Sub

Sub btnCliente_Click
    listarClientes
End Sub

Sub listarClientes
    c=s.ExecQuery("SELECT * FROM Cliente")
    ListView1.Clear
   
    If c.RowCount>0 Then
    For i=0 To c.RowCount-1
        c.Position=i
       
        ListView1.AddTwoLines (c.GetString("Id"),"Nombre: " & c.GetString("Nombre") &" Direccion: "& c.GetString("Direccion") &" Telefono: "& c.GetString("Telefono"))
    Next
    End If
   
End Sub
 

PEDRO DE LEON RODAS

New Member
Licensed User
Buen dia.
Quiero seguir el ejemplo aqui propuesto, pero al agregar un ListViewData, no me lo acepta:
Ejemoplo:

Dim lvr as ListViewData
El ListViewData lo pone en rojo.
Es neceario tener alguna libreria ?

Gracias
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Buen dia.
Quiero seguir el ejemplo aqui propuesto, pero al agregar un ListViewData, no me lo acepta:
Ejemoplo:

Dim lvr as ListViewData
El ListViewData lo pone en rojo.
Es neceario tener alguna libreria ?

Gracias

Hola Pedro

No se si te confundes con lo de listViewData por un CustomListView o es que has copiado de algun sitio el ListViewData y te faltan las declaraciones.

Si preguntabas sobre CustomListView, aqui tienes el tutorial y librerias:
https://www.b4x.com/android/forum/t...xible-list-based-on-scrollview.19567/#content

Si no era eso, tendras que añadir esto a tu codigo en el caso de añadir dos elementos mas:
B4X:
Sub Globals
  Type ListViewData (FirstRow AsString, SecondRow AsString)
...
End Sub

' cargas con datos el ListViewData
For i = 0 to 100
Dim lvd As ListViewData
lvd.Initialize
lvd.FirstRow = "abc"
lvd.SecondRow= "def"
ListView1.AddTwoLines2(lvd.FirstRow, lvd.SecondRow, lvd)
Next

' cuando haces click ...
Sub ListView1_ItemClick(Position As Int, Value As Object)
  Dim lvd As ListViewData
lvd = Value
...
End Sub

Saludos
 

inakigarm

Well-Known Member
Licensed User
Longtime User
Buen dia.
Quiero seguir el ejemplo aqui propuesto, pero al agregar un ListViewData, no me lo acepta:
Ejemoplo:

Dim lvr as ListViewData
El ListViewData lo pone en rojo.
Es neceario tener alguna libreria ?

Gracias

La vista no es ListViewData sino Listview
B4X:
Private listview1 As ListView
Si construyes el Layout con el Designer, al seleccionar Generate Members y seleccionarlo, te creará el Dim y se inicializará el Listview sin que haga falta declararlo explícitament por código
 

deizliel

Member

Hola Samperizal estoy pensando en utilizar estas ultimas lineas de tu post, para usar los datos leídos de un listview y luego pegarlos en varios editext, el listview tiene 4 columnas, contando la del ID y sólo tendrá un registro (o sea solo una fila con 4 datos) , entonces si quisiera leer esos 4 datos y pasarlos a 4 edittext q podría usar.?
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…