Italian ricerca in ListView

Giampiero

Member
Licensed User
Longtime User
Ciao a tutti, sto iniziando a sviluppare con questo ambiente, non so come gestire la ricerca di valori in una ListView dopo che è stata caricata, ad esempio vorrei ricercare il valore contenuto in un EditText ed evidenziare la riga della ListView.
 

djveleno

Active Member
Licensed User
Longtime User
Ma l'AutoCompleteEditText permette solo di avere un EditText evoluto, in modo da poter sfruttare un 'vocabolario' e autocompletare la edittext tramite una lista di vocaboli preimpostati, credo che la domanda fosse riferita ad un metodo Search, se non ho capito male.
 

Giampiero

Member
Licensed User
Longtime User
innanzitutto vi ri ngrazio per le rispose, e poi mi scuso perchè mi sono spiegato male, in effetti si tratta di search su ListView
 

djveleno

Active Member
Licensed User
Longtime User
C'è una classe "SearchView", che è simile all'autoComplete, ma che può fare al caso tuo, puoi scaricarla da qui:
http://www.b4x.com/android/forum/attachments/searchview-zip.12696/
E' probabile che vi siano da fare alcune modifiche per adattarla, ma, una mancanza che ho notato è proprio in un metodo di ricerca facile da implementare, è sicuramente più semplice eseguire una ricerca da un DB, da testo...mmmh
 

Giampiero

Member
Licensed User
Longtime User
secondo voi è possibile risolvere il problema facendo un ciclo di lettura della listview(con un ciclo for) e comparare un valore stesso della lista con ad esempio quello messo nella textedit?? perchè in questo modo la search me la faccio così
 

ivanomonti

Expert
Licensed User
Longtime User
Questo esempio ti fa vedere come puoi usare una ricerca su un array di tipo string usando come appoggio anche un AutoCompleteEditText... poi anche gli altri consigli sono ottimi.

B4X:
#Region  Project Attributes
    #ApplicationLabel: B4A Example
    #VersionCode: 1
    #VersionName:
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
End Sub

Sub Globals
    Dim ListView1 As ListView
    Dim countries() As String
    Dim AutoCompleteEditText1 As AutoCompleteEditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Main")
  
    countries = Array As String( _
        "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", _
        "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", _
        "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", _
        "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", _
        "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", _
        "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory", _
        "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", _
        "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde", _
        "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", _
        "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", _
        "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic", _
        "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", _
        "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", _
        "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland", _
        "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia", _
        "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar", _
        "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", _
        "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary", _
        "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", _
        "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos", _
        "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", _
        "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", _
        "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", _
        "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", _
        "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand", _
        "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas", _
        "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", _
        "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar", _
        "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena", _
        "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon", _
        "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal", _
        "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", _
        "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea", _
        "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden", _
        "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas", _
        "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", _
        "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda", _
        "Ukraine", "United Arab Emirates", "United Kingdom", _
        "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", _
        "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara", _
        "Yemen", "Yugoslavia", "Zambia", "Zimbabwe")
    AutoCompleteEditText1.SetItems(countries)
    For i = 0 To countries.Length-1
        ListView1.AddSingleLine(countries(i))
    Next
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub AutoCompleteEditText1_TextChanged (Old As String, New As String)
    For i = 0 To countries.Length-1
        If New = countries(i) Then
            ListView1.SetSelection(i)
        End If
    Next
End Sub

quando selezioni un country la listview viene puntata a quell'indice ;-)
 
Top