Sub Globals
Type item (id As String , title As String)
Private rv As AX_RecyclerView
Private adapter As dcKeyValueList ' DataCollection Library
End Sub
Sub Activity_Create(FirstTime As Boolean)
rv.Initializer("rv").GridView(2).Vertical.Build
Activity.AddView(rv , 0 , 0 , 100%x ,100%y)
rv.DefaultAdapter
Dim l As List
l.Initialize
adapter.Initialize
For i = 1 To 10
Dim item As item
item.Initialize
item.id = i
item.title = "Item#" & i
adapter.Put(item.id,item)
Next
rv.Adapter2.NotifyDataSetChanged
End Sub
Private Sub rv_GetItemCount As Int
Return adapter.Size
End Sub
Private Sub rv_onCreateViewHolder (Parent As Panel,ViewType As Int)
Dim p As Panel
p.Initialize("")
p.Color = Colors.RGB(Rnd(0,255) , Rnd(0,255) , Rnd(0,255))
Parent.AddView(p , 0 , 0 , 50%x , 25%y)
Dim l As Label
l.Initialize("")
l.Gravity = Gravity.CENTER
l.TextColor = Colors.Black
l.TextSize = 16
p.AddView(l , 0 , 0 , -1,-1)
End Sub
Private Sub rv_onBindViewHolder (Parent As Panel,Position As Int)
Dim item = adapter.GetValueAt(Position) As item
Dim p As Panel = Parent.GetView(0)
Dim l As Label = P.GetView(0)
l.Text = item.title
Parent.Tag = item
Parent.Height = 25%y
End Sub
Private Sub rv_onItemClick (Parent As Panel,Position As Int)
Dim item As item = Parent.Tag
If adapter.ContainsKey(item.id) Then
Dim index As Int = adapter.IndexOfKey(item.id)
' For delete an item from the grid
adapter.RemoveAt(index)
rv.Adapter2.NotifyDataItemRemoved(index)
' For refresh the grid for example to update the title of an item
' Firstly you should update the adapter
' item.title = "my new title here!"
' adapter.Put(item.id , item)
' rv.Adapter2.NotifyDataItemChanged(index)
' To add new item
' Dim nItem As item
' nItem.Initialize
' nItem.id = Rnd(1000,1000000)
' nItem.title = "My awesome title here!"
' adapter.PutAt(0, nItem.id , nItem)
' rv.Adapter2.NotifyDataItemInserted(0)
' rv.SmoothScrollToPosition(0)
End If
End Sub