نمایش اطلاعات در 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 هست که همه چی درش لود میشه و نمایش داده میشه.
اما نمیدونم چه جوری متون داخل دیتابیس آنلاینو خط به خط توش لود کنم!!
امونمو بریده!!
ارسال یک پاسخ
شما برای افزودن پاسخ جدید یا باید وارد شوید یا ثبت نام کنید. ورود ثبت نام.