نمایش اطلاعات در UltimateListView
سلام به همه.
من یه برنامه ای دارم که محیط چت برنامه رو با کمک کتابخانه UltimateListView ساختم.
حالا من نیاز دارم تا از دیتابیس آنلاین، چتایی که شده رو بگیرم و داخل این لیست نشون بدم.
اما واقعا نمیدونم چه جوری!!
اینم کدام:
Dim ULV As UltimateListView
Dim lblMeasure As Label
Dim Messages As List
Dim VerticalPadding As Int
Sub Activity_Create(FirstTime As Boolean)
lblMeasure.Initialize("")
lblMeasure.Background = LoadNinePatchDrawable("balloon_left")
lblMeasure.TextSize = 18
lblMeasure.Typeface = Typeface.DEFAULT
lblMeasure.Visible = False
Activity.AddView(lblMeasure, 0, 0, 85%x, 100%y)
Dim r As Reflector, DrwRect As Rect
r.Target = lblMeasure.Background
DrwRect.Initialize(0, 0, 0, 0)
r.RunMethod4("getPadding", Array As Object(DrwRect), Array As String("android.graphics.Rect"))
VerticalPadding = DrwRect.Top + DrwRect.Bottom
Messages.Initialize
' Messages.Add("به بخش چت با متخصصین رایانک خوش آمدید. لطفا سوال لپ تاپی خود را بپرسید...")
ULV.Initialize(0, 0, "", "")
ULV.Color = Colors.RGB(33, 150, 243)
ULV.DividerHeight = 15
ULV.FadingEdges(False)
ULV.StackFromBottom(False)
ULV.TranscriptMode = ULV.TRANSCRIPT_ALWAYS_SCROLL
AddLayoutAndItem(False, Messages.Size - 1)
Activity.AddView(ULV,0,0,100%x,88%y)
End Sub
Sub AddLayoutAndItem(SentMsg As Boolean, MsgID As Int)
Dim su As StringUtils
Dim MsgHeight As Int = Max(10dip, su.MeasureMultilineTextHeight(lblMeasure, Messages.Get(MsgID))) + VerticalPadding
Dim LayoutName As String
If SentMsg Then
LayoutName = "Sent" & MsgHeight'
Else
LayoutName = "Received" & MsgHeight'
End If
If Not(ULV.LayoutExists(LayoutName)) Then
ULV.AddLayout(LayoutName, "Item_LayoutCreator", "Item_ContentFiller", MsgHeight, False)
End If
ULV.AddItem(LayoutName, MsgID)
End Sub
Sub Item_LayoutCreator(LayoutName As String, LayoutPanel As Panel)
Dim lblText As Label
lblText.Initialize("")
If LayoutName.StartsWith("SENT") Then'باعث میشه تا حالت لیبل عوض بشه بین کاربر و ادمین
lblText.Background = LoadNinePatchDrawable("balloon_left")'حالت بلونا
lblText.TextColor = Colors.Red'رنگ لیبل یوزر
lblText.SetVisibleAnimated(2000,True)
Else
lblText.Background = LoadNinePatchDrawable("balloon_right")'حالت بالونا
lblText.TextColor = Colors.Blue'رنگ لیبل ادمین
lblText.SetVisibleAnimated(2000,True)
End If
lblText.Gravity = Gravity.RIGHT'Gravity.TOP + Gravity.LEFT
lblText.TextSize = lblMeasure.TextSize
lblText.Typeface = lblMeasure.Typeface
If LayoutName.StartsWith("SENT") Then'
LayoutPanel.AddView(lblText, 15%x, 0, 85%x, LayoutPanel.Height)
Else
LayoutPanel.AddView(lblText, 0, 0, 85%x, LayoutPanel.Height)
End If
End Sub
Sub Item_ContentFiller(ItemID As Long, LayoutName As String, LayoutPanel As Panel, Position As Int)
Dim lblText As Label = LayoutPanel.GetView(0) 'First and only view in the panel
lblText.Text = Messages.Get(ItemID)
End Sub
ub JobDone (job As HttpJob)
If job.Success = True Then
Select Case job.JobName
' Case "ht_message"
' education.j_p.Initialize(job.GetString)
' Dim list As List= education.j_p.NextArray
' For i=0 To list.Size-1
' Dim map_title As Map=list.Get(i)
' Messages.Add(map_title.Get("message"))
' Next
End Sub
Sub LoadNinePatchDrawable(ImageName As String) As Object
Dim r As Reflector
Dim package As String
package = r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
Dim ID_Drawable As Int
ID_Drawable = r.GetStaticField(package & ".R$drawable", ImageName)
r.Target = r.GetContext
r.Target = r.RunMethod("getResources")
Return r.RunMethod2("getDrawable", ID_Drawable, "java.lang.int")
End Sub
ممنون میشم کمکم کنید.
و این رو هم بگم که متغیر Message هست که همه چی درش لود میشه و نمایش داده میشه.
اما نمیدونم چه جوری متون داخل دیتابیس آنلاینو خط به خط توش لود کنم!!
امونمو بریده!!

ارسال یک پاسخ
شما برای افزودن پاسخ جدید یا باید وارد شوید یا ثبت نام کنید. ورود ثبت نام.