Spanish Como Leer primer Item y Segundo en ListView

desof

Well-Known Member
Licensed User
Longtime User
Hola tengo este trozo de codigo y al presionar sobre un item me marca
en el LAbel3 algo asi como [First=Item 1]
como puedo tomar por separado los dos items?


B4X:
Sub ListView1_ItemClick (Position As Int, Value As Object)
Label2.Text =Position
Label3.Text =Value
End Sub
 

JoanRPM

Active Member
Licensed User
Longtime User
No entiendo bien la pregunta, pero quizás es esto.

Dentro de: Sub ListView1_ItemClick (Position As Int, Value As Object) pones:
txt = ListView1.GetItem(Position)
en txt tendrás el valor de la lista seleccionada (después de pulsar).

También puedes acceder con un numero de indice (por ejem el primer valor):
txt = ListView1.GetItem(0)

Saludos.
 

desof

Well-Known Member
Licensed User
Longtime User
No eso lo entiendo lo que quiero es tomar la 1° y 2° linea por separado por ejemplo el listview muestra

item=0 >> MARIO Gomez
Alvear 7856
item=1 >> Pepe Mujica
Caseros 890

entonces al hacer click me muestra solo la 1° o bien en el Emulador no alcanzo a verla toda...
 

perezriveracarlos

Member
Licensed User
Longtime User
Prueba con esto.

B4X:
Sub ListView1_ItemClick (Position As Int, Value As Object)
Try
    Label2.Text =ListView1.GetItem(Position )
    Label3.Text =ListView1.GetItem(Position + 1)
Catch
End Try
End Sub
 

pilbazan

Member
Licensed User
Longtime User
No eso lo entiendo lo que quiero es tomar la 1° y 2° linea por separado por ejemplo el listview muestra

item=0 >> MARIO Gomez
Alvear 7856
item=1 >> Pepe Mujica
Caseros 890

entonces al hacer click me muestra solo la 1° o bien en el Emulador no alcanzo a verla toda...


Para saber si es un problema del emulador como comentas, prueba sacar el mensaje en un msgbox o en un ToastMessageShow.

B4X:
ToastMessageShow(txt,True)

o bien

B4X:
Msgbox(txt, "El valor de txt es:")

Si así y todo no se ve todo el texto completo, seguimos buscando una solución.
 

desof

Well-Known Member
Licensed User
Longtime User
Para saber si es un problema del emulador como comentas, prueba sacar el mensaje en un msgbox o en un ToastMessageShow.

B4X:
ToastMessageShow(txt,True)

o bien

B4X:
Msgbox(txt, "El valor de txt es:")

Si así y todo no se ve todo el texto completo, seguimos buscando una solución.

MUCHAS GRACIAS AMIGO! mira para simplificar te mostraré una captura observa que hice click en el Item 5 que position asi lo indica en el titulo del msgbox y el contenido volque la variable value o se algo asi!

MsgBox(Value , Positiion)

Nota que lo que yo te digo es que como cargué el listview asi ListView1.AddTwoLineas2(T1.First, T1.Second, T1) me muestra el contenido todo junto y no se porque me devuelve la palabra First=.....?
Lo del Valor NULL es otro tema que teng oquew resolver pero luego.!!!
 

Attachments

  • CAPTURA.jpg
    CAPTURA.jpg
    66.7 KB · Views: 304

pilbazan

Member
Licensed User
Longtime User
Te pego todo el código para que puedas interpretarlo:

Esto extrae el valor de la primera linea en un label y el de la segunda en otro.


B4X:
Sub Globals
   'These global variables will be redeclared each time the activity is created.
   'These variables can only be accessed from this module.
    Type T1 (First As String, Second As String )
   Dim Label1 As Label
   Dim Label2 As Label
   Dim Label3 As Label
   Dim ListView1 As ListView
   
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
   'Do not forget to load the layout file created with the visual designer. For example:
   Activity.LoadLayout("main")

Dim lvd As T1
lvd.Initialize
lvd.First = "Blanco"
lvd.Second = "Info del blanco"
ListView1.AddTwoLines2(lvd.First, lvd.Second,lvd)

Dim lvd As T1
lvd.Initialize
lvd.First = "Azul"
lvd.Second= "Info del Azul"
ListView1.AddTwoLines2(lvd.First, lvd.Second,lvd)

Dim lvd As T1
lvd.Initialize
lvd.First = "Amarillo"
lvd.Second= "Info del Amarillo"
ListView1.AddTwoLines2(lvd.First, lvd.Second,lvd)

Dim lvd As T1
lvd.Initialize
lvd.First = "Negro"
lvd.Second = "Info del Negro"
ListView1.AddTwoLines2(lvd.First, lvd.Second,lvd)

Dim lvd As T1
lvd.Initialize
lvd.First = "Verde"
lvd.Second = "Info del Verde"
ListView1.AddTwoLines2(lvd.First, lvd.Second,lvd)

Dim lvd As T1
lvd.Initialize
lvd.First = "violeta"
lvd.Second = "Info del violeta"
ListView1.AddTwoLines2(lvd.First, lvd.Second,lvd)

End Sub

Sub ListView1_ItemClick (Position As Int, Value As Object)
Dim lvd As T1
lvd=Value
Label2.Text =lvd.First
Label3.Text =lvd.Second
Msgbox(Value, Position)
End Sub


Quizás la parte más importante sea esta:

B4X:
Sub ListView1_ItemClick (Position As Int, Value As Object)
Dim lvd As T1
lvd=Value
Label2.Text =lvd.First
Label3.Text =lvd.Second
Msgbox(Value, Position)
End Sub
 

Attachments

  • Ejemplo 2 lineas listview.JPG
    Ejemplo 2 lineas listview.JPG
    38.2 KB · Views: 275

desof

Well-Known Member
Licensed User
Longtime User
SIIIIIIIIII!!!!!!!!! Ahora si lo comprendo y veo cual es el problema!!! no sabia eso de extrar asi:

B4X:
Label2.Text =lvd.First
Label3.Text =lvd.Second

Muchas gracias amigo y ayudame por favor en mi otra pregunta ¿por que me parece NULL el campo cuando tiene algun Acento,ñ o Nº ???
Mire en la BD y están bien los datos pero el emulador y el movil me los muestra como null
 

rg58sma

Member
Licensed User
Longtime User
SIIIIIIIIII!!!!!!!!! Ahora si lo comprendo y veo cual es el problema!!! no sabia eso de extrar asi:

B4X:
Label2.Text =lvd.First
Label3.Text =lvd.Second

Muchas gracias amigo y ayudame por favor en mi otra pregunta ¿por que me parece NULL el campo cuando tiene algun Acento,ñ o Nº ???
Mire en la BD y están bien los datos pero el emulador y el movil me los muestra como null

Y SI SOLO TE QUERES QUEDAR CON "BLANCO" o solo con "Info del blanco".


Cuando yo llene el Listview con el "AddTwoLines2" me pedia 2 lineas, yo cuando selecciono quisera quedarme con una de las 2 lineas.

Por lo que veo, aca devuelve todo junto
 

pilbazan

Member
Licensed User
Longtime User
Y SI SOLO TE QUERES QUEDAR CON "BLANCO" o solo con "Info del blanco".


Cuando yo llene el Listview con el "AddTwoLines2" me pedia 2 lineas, yo cuando selecciono quisera quedarme con una de las 2 lineas.

Por lo que veo, aca devuelve todo junto

Hola rg58sma,
Si sigues el ejemplo verás que con las lineas
B4X:
Label2.Text =lvd.First
Label3.Text =lvd.Second

te podrás quedar en Label2.Text con el valor "BLANCO" y en Label3.Text con el valor "Info de blanco"

Espero que te sirva.

Saludos
 
Top