Ciao,
apro questo nuovo post per separare le cose e non andare in confusione.
Per leggere il file di testo e fare una lista dei NameModel, su cui cliccando mi apre il NameModel in questione con i relativi Component, uso questo codice
Questo crasha quando clicco su di un NameModel che non possiede tutti i campi compilati.
Commentata c'è una Sub ListModelView_ItemClick con cui ho tentato di ovviare al problema, ma la mia logica non ha dato frutti Crasha comunque.
apro questo nuovo post per separare le cose e non andare in confusione.
Per leggere il file di testo e fare una lista dei NameModel, su cui cliccando mi apre il NameModel in questione con i relativi Component, uso questo codice
B4X:
#Region Project Attributes
#ApplicationLabel: RC Hangar
#VersionCode: 1
#VersionName: 0.01
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
'Private rp As RuntimePermissions
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Private ListModelView As ListView
Private addPlusButton As Button
Dim ListModel(100) As String
Type ListViewData (FirstRow As String, SecondRow As String, Picture As Bitmap)
Private ModelViewPanel As Panel
Private BackModelWiewButton As Button
Dim ModelName As String
Dim Component1 As String
Dim Component2 As String
Dim Component3 As String
Dim Component4 As String
Dim Component5 As String
Dim Component6 As String
Private ModelnameLabel As Label
Private Component1Label As Label
Private Component2Label As Label
Private Component3Label As Label
Private Component4Label As Label
Private Component5Label As Label
Private Component6Label As Label
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("Layout1")
Activity.LoadLayout("Main")
Activity.Title = "RC hangar - Models list"
' LoadListModel 'Forse è meglio metterlo in Resume? da testare
ToastMessageShow("if there are no models here, click on add model button",True)
'MsgboxAsync("se non ci sono modelli inseriscili cliccando sul pulsante + in basso a destra", "Ecco il tuo Hangar")
End Sub
Sub Activity_Resume
LoadListModel 'per ora sta in Create da testare
ModelViewPanel.Visible = False
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub addPlusButton_Click
StartActivity(AggiungiModello)
End Sub
Sub LoadListModel
ListModelView.Clear
Dim List1 As List
'controllo se esiste il file di testo
If File.Exists(File.DirRootExternal, "RCHangar/ListModel.txt") Then
'se il file esiste carico i dati dal file di testo
List1 =File.ReadList(File.DirRootExternal, "RCHangar/ListModel.txt")
Dim Bitmap1 As Bitmap
For i = 0 To 99
ListModel(i) = List1.Get(i)
'creo un mini array con tutte le parti della riga esaminata
Dim stringArray() As String = Regex.Split("\|",ListModel(i))
If ListModel(i) <> "0" Then
Dim lvd As ListViewData
lvd.Initialize
Bitmap1.Initialize(File.DirAssets, "planeApp.png")
lvd.FirstRow = stringArray(0)
lvd.SecondRow = "Efficiente/In Manutenzione" 'Lo implementerò successivamente con un boolean
lvd.Picture = Bitmap1
ListModelView.AddTwoLinesAndBitmap2(lvd.FirstRow,lvd.SecondRow,lvd.Picture, lvd)
' imposto i colori
ListModelView.TwoLinesAndBitmap.Label.TextColor = Colors.RGB(0,0,0)
ListModelView.TwoLinesAndBitmap.SecondLabel.TextColor = Colors.RGB(254,0,0)
ListModelView.TwoLinesAndBitmap.ItemHeight = 80dip
End If
Next
End If
End Sub
Sub ListModelView_ItemClick (Position As Int, Value As Object)
addPlusButton.Visible = False
Dim ListTemp As List
'controllo se esiste il file di testo
If File.Exists(File.DirRootExternal, "RCHangar/ListModel.txt") Then
'se il file esiste carico i dati dal file di testo
ListTemp =File.ReadList(File.DirRootExternal, "RCHangar/ListModel.txt")
End If
Dim stringTemp As String = ListTemp.Get(Position)
Dim stringArray() As String = Regex.Split("\|",stringTemp)
ModelName = stringArray(0)
Component1 = stringArray(1)
Component2 = stringArray(2)
Component3 = stringArray(3)
Component4 = stringArray(4)
Component5 = stringArray(5)
Component6 = stringArray(6)
ModelViewPanel.Visible = True
ModelnameLabel.Text = ModelName
Component1Label.Text = Component1
Component2Label.Text = Component2
Component3Label.Text = Component3
Component4Label.Text = Component4
Component5Label.Text = Component5
Component6Label.Text = Component6
End Sub
'Sub ListModelView_ItemClick (Position As Int, Value As Object)
'
' addPlusButton.Visible = False
'
' Dim ListTemp As List
'
' 'controllo se esiste il file di testo
' If File.Exists(File.DirRootExternal, "RCHangar/ListModel.txt") Then
' 'se il file esiste carico i dati dal file di testo
' ListTemp =File.ReadList(File.DirRootExternal, "RCHangar/ListModel.txt")
'
' End If
'
' Dim stringTemp As String = ListTemp.Get(Position)
'
' Dim stringArray() As String = Regex.Split("\|",stringTemp)
'
' ModelName = stringArray(0)
' If stringArray(0)<>("") Then
' ModelnameLabel.Text = ModelName
' Else
' BackModelWiewButton_Click
' End If
'
' Component1 = stringArray(1)
' If stringArray(1)<>("") Then
' Component1Label.Text = Component1
' Else
' Component1Label.Text = ""
' End If
'
' Component2 = stringArray(2)
' If stringArray(2)<>("") Then
' Component2Label.Text = Component2
' Else
' Component2Label.Text = ""
' End If
'
' Component3 = stringArray(3)
' If stringArray(3)<>("") Then
' Component3Label.Text = Component3
' Else
' Component3Label.Text = ""
' End If
'
' Component4 = stringArray(4)
' If stringArray(4)<>("") Then
' Component4Label.Text = Component4
' Else
' Component4Label.Text = ""
' End If
'
' Component5 = stringArray(5)
' If stringArray(5)<>("") Then
' Component5Label.Text = Component5
' Else
' Component5Label.Text = ""
' End If
'
' Component6 = stringArray(6)
' If stringArray(6)<>("") Then
' Component6Label.Text = Component6
' Else
' Component6Label.Text = ""
' End If
'
'
' ModelViewPanel.Visible = True
'
'
'End Sub
Sub BackModelWiewButton_Click
ModelViewPanel.Visible = False
addPlusButton.Visible = True
End Sub
Questo crasha quando clicco su di un NameModel che non possiede tutti i campi compilati.
Commentata c'è una Sub ListModelView_ItemClick con cui ho tentato di ovviare al problema, ma la mia logica non ha dato frutti Crasha comunque.