Italian spinner

fireblade

Member
Facendo delle prove con l'oggetto spinner sono riuscito a popolarlo con un ciclo for next (carico numeri da 1 a 20), poi cliccando su un numero in lista nello spinner lo passo a una edittext, e fin qui tutto ok.

Lo spinner di default mostra il numero 1, se io scrivo nella edittext un numero compreso tra 1 e 20, ad esempio il numero 10 alla pressione di un button come faccio ad evidenziare il numero 10 della edittext nello spinner al posto del numero 1?
 

GaNdAlF89

Active Member
Licensed User
Longtime User
il metodo Add è meglio utilizzarlo solo per aggiungere valori allo spinner..

io ti consiglio questo metodo invece

B4X:
Sub Button_Click
    Dim index as Int
    index = Spinner1.IndexOf(txtbox.text) '(1)
    Spinner1.SelectedIndex = index '(2)
End Sub

praticamente
(1) cerchi nello spinner l'indice della 'riga' contenente il testo che gli passi, in questo caso il contenuto della txtbox
(2) selezioni la riga avente l'indice appena trovato

sinceramente non ho provato, ma così dovrebbe funzionare! fammi sapere...
 
Last edited:

fireblade

Member
il metodo Add è meglio utilizzarlo solo per aggiungere valori allo spinner..

io ti consiglio questo metodo invece

B4X:
Sub Button_Click
    Dim index as Int
    index = Spinner1.IndexOf(txtbox.text) '(1)
    Spinner1.SelectedIndex = index '(2)
End Sub

praticamente
(1) cerchi nello spinner l'indice della 'riga' contenente il testo che gli passi, in questo caso il contenuto della txtbox
(2) selezioni la riga avente l'indice appena trovato

sinceramente non ho provato, ma così dovrebbe funzionare! fammi sapere...

Tutto ok al primo colpo...complimenti di nuovo.

Sto perdendo tempo ad adattare questo codice con "SetSelection" per fare la stessa cosa con una listview, ma non funziona niente.
Popolo la listview,clicco su una voce e la passo alla text...ed è ok
Nel button ho scritto:
lv.SetSelection(txt.Text) e così va in errore.
mente così
lv.SetSelection(2) in questo caso mi centra nella listview la voce numero 2, è possibile fare la stessa dello spinner usando il cantenuto di una text?
 

GaNdAlF89

Active Member
Licensed User
Longtime User
il metodo SetSelection funziona praticamente come il SelectedIndex per lo spinner, cioè seleziona la riga corrispondente all'indice passatogli come argomento; per far questo accetta un Int come parametro, ecco perché ti dà errore se gli passi un testo...

prova ad assegnare il contenuto della txtbox a una variabile dichiarata come Int (dovrebbe fare il casting automaticamente) e poi passare questa variabile al metodo SetSelection

cioè
B4X:
Dim var as Int
var = txt.Text
lv.SetSelection(var)
 
Last edited:

fireblade

Member
il metodo SetSelection funziona praticamente come il SelectedIndex per lo spinner, cioè seleziona la riga corrispondente all'indice passatogli come argomento; per far questo accetta un Int come parametro, ecco perché ti dà errore se gli passi un testo...

prova ad assegnare il contenuto della txtbox a una variabile dichiarata come Int (dovrebbe fare il casting automaticamente) e poi passare questa variabile al metodo SetSelection

cioè
B4X:
Dim var as Int
var = txt.Text
lv.SetSelection(var)

Purtroppo non va
 

GaNdAlF89

Active Member
Licensed User
Longtime User
il problema è fargli accettare la stringa come numero, per questo aggiungiamo un controllo

prova così:

B4X:
Dim var as Int
Dim str as String

str = txt.Text

If IsNumber(str) Then
    var = str
    lv.SetSelection(var)
End If
 
Last edited:

fireblade

Member
nemmeno così funziona...
alla pressione del button oltre a non funzionare, non mi restituisce nemmeno un errore...
 
Top