Sub innerSaveState(v As View, list1 As List)
Dim data() As Object
If v Is EditText Then
Dim edit As EditText
edit = v
data = Array As Object(edit.Text, edit.SelectionStart)
Else If v Is Spinner Then
Dim spinner1 As Spinner
spinner1 = v
data = Array As Object(spinner1.SelectedIndex)
Else If v Is CheckBox Then
Dim check As CheckBox
check = v
data = Array As Object(check.Checked)
Else If v Is RadioButton Then
Dim radio As RadioButton
radio = v
data = Array As Object(radio.Checked)
Else If v Is ToggleButton Then
Dim toggle As ToggleButton
toggle = v
data = Array As Object(toggle.Checked)
Else If v Is SeekBar Then
Dim seek As SeekBar
seek = v
data = Array As Object(seek.Value)
Else If v Is TabHost Then
Dim th As TabHost
th = v
data = Array As Object(th.CurrentTab)
Else If v Is ScrollView Then
Dim sv As ScrollView
sv = v
data = Array As Object(sv.ScrollPosition)
list1.Add(data)
Dim data() As Object
For i = 0 To sv.Panel.NumberOfViews - 1
innerSaveState(sv.Panel.GetView(i), list1)
Next
Else If v Is Panel Then
Dim panel1 As Panel
panel1 = v
For i = 0 To panel1.NumberOfViews - 1
innerSaveState(panel1.GetView(i), list1)
Next
End If
If data.Length > 0 Then list1.Add(data)
End Sub