Italian Sempre Spinner

Il componente Spinner ha una proprietà: Prompt che è possibile settare sia da designer che da codice, ma, a me non funziona, o meglio è probabile che sia sbagliata la sintassi....

Esempio:

Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("Layout1")
spn1.Prompt = "Prova Spinner"
spn1.Add("p1")
spn1.Add("p2")
End Sub

Manuel
 

magoandroid

Member
Licensed User
Longtime User
Ciao Manuel,
la sintassi è corretta.

Questo è un piccolo esempio funzionante con una label nel Layout e lo spinner da codice.


B4X:
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.

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.

   Dim lblGiorno As Label
   Dim spSettimana As Spinner
   Dim arSettimana(7) As String
   Dim lblGiorno As Label
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("main")
  
    arSettimana(0)="Lunedì"
    arSettimana(1)="Martedì"
    arSettimana(2)="Mercoledì"
    arSettimana(3)="Giovedì"
    arSettimana(4)="Venerdì"
    arSettimana(5)="Sabato"
    arSettimana(6)="Domenica" 
  
    spSettimana.Initialize("spinsel")
    spSettimana.Prompt="Seleziona il giorno della settimana."
    spSettimana.AddAll(arSettimana)

   Activity.AddView(spSettimana,10dip,10dip,200dip,40dip)
   
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub spinsel_ItemClick (Position As Int, Value As Object)
   lblGiorno.Text = Value
End Sub

Un saluto cordiale.
MAgo
 

LucaMs

Expert
Licensed User
Longtime User
Ciao Manuel,
la sintassi è corretta.

Questo è un piccolo esempio funzionante con una label nel Layout e lo spinner da codice.


B4X:
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.

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.

   Dim lblGiorno As Label
   Dim spSettimana As Spinner
   Dim arSettimana(7) As String
   Dim lblGiorno As Label
 
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("main")

    arSettimana(0)="Lunedì"
    arSettimana(1)="Martedì"
    arSettimana(2)="Mercoledì"
    arSettimana(3)="Giovedì"
    arSettimana(4)="Venerdì"
    arSettimana(5)="Sabato"
    arSettimana(6)="Domenica"

    spSettimana.Initialize("spinsel")
    spSettimana.Prompt="Seleziona il giorno della settimana."
    spSettimana.AddAll(arSettimana)

   Activity.AddView(spSettimana,10dip,10dip,200dip,40dip)
 
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub spinsel_ItemClick (Position As Int, Value As Object)
   lblGiorno.Text = Value
End Sub

Un saluto cordiale.
MAgo


Assolutamente non funziona! (il solo Prompt, eh). B4A v. 3.0

Ciao
 

djveleno

Active Member
Licensed User
Longtime User
Il Prompt è la parte scritta in alto allo Spinner aperto, ovvero nel caso dell'esempio "Seleziona il giorno della settimana", la scritta è effettivamente nel posto dove deve stare, all'apertura dello spinner.
Credo che la cosa sbagliata che si vede sia che in VB.NET nella ComboBox si può settare la stringa che appare all'apertura del form, mentre così la stringa è visibile all'apertura dello spinner.
 

LucaMs

Expert
Licensed User
Longtime User
Il Prompt è la parte scritta in alto allo Spinner aperto, ovvero nel caso dell'esempio "Seleziona il giorno della settimana", la scritta è effettivamente nel posto dove deve stare, all'apertura dello spinner.
Credo che la cosa sbagliata che si vede sia che in VB.NET nella ComboBox si può settare la stringa che appare all'apertura del form, mentre così la stringa è visibile all'apertura dello spinner.


Si, diciamo l'intestazione, come fosse la prima riga; ma a me non compare!
 

djveleno

Active Member
Licensed User
Longtime User
Posto le immagini dello spinner così confronti quello che non riesci a visualizzare.

1.png
2.png
3.png
 

djveleno

Active Member
Licensed User
Longtime User
Provo ad allegare lo zip del mio test, prova ad installare questo.
 

Attachments

  • testspinner.zip
    7 KB · Views: 249

djveleno

Active Member
Licensed User
Longtime User
Molto probabilmente è solo un problema di compatibilità tra versioni di Android, io ho un emulatore con un basso livello di sdk e una versione di Android alla 2.2 per avere più compatibilità possibile verso le precedenti versioni di Android, prova ad usare un emulatore con un API level più basso ed un Platform 2.2 o 3.0 così dovresti visualizzare correttamente la prova.
Per inviare immagini devi caricarle online, anche su spazi web gratuiti o dedicati alle foto, per poi inserire l'url quando richiesto, non c'è un Incolla per le immagini.
 

LucaMs

Expert
Licensed User
Longtime User
Molto probabilmente è solo un problema di compatibilità tra versioni di Android, io ho un emulatore con un basso livello di sdk e una versione di Android alla 2.2 per avere più compatibilità possibile verso le precedenti versioni di Android, prova ad usare un emulatore con un API level più basso ed un Platform 2.2 o 3.0 così dovresti visualizzare correttamente la prova.
Per inviare immagini devi caricarle online, anche su spazi web gratuiti o dedicati alle foto, per poi inserire l'url quando richiesto, non c'è un Incolla per le immagini.


Ma io avevo già generato un nuovo progetto, copiando il codice da te postato (correggo: da magoandroid), con le mie impostazioni. Mi dà gli stessi risultati.
L'incolla funziona, infatti sono riuscito, come vedi; ma non se entri in modifica del post.

Grz cmq, non perdere altro tempo. Se trovo la soluzione, ti informo.


AGGIORNAMENTO: oramai sono fuori come un balcone :confused: ! Confermo che: sia copiando il codice di Magoandroid, sia usando "lo zip" di DJVeleno, ottengo lo screenshot che vedete, ovvero nero, senza prompt né radiobuttons; ma (e qui si nota il "balcone"), nell'app che sto sviluppando (da troppo tempo, evidentemente) gli spinner hanno l'aspetto di quelli di DJVeleno.
Non so perché e, per ora, non mi scervello per scoprirlo; l'unica cosa che mi viene in mente è che ora ho la nuova versione di b4a, la 3.00, mentre l'app l'ho iniziata con una precedente.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Ciao raga , non e' che magari non e' impostato correttamente la path di android.jar
Mamo

Eh no, Mamo, perché in tutti e tre i casi compila con la stessa android.jar, eppure dà risultati diversi. Mah, per ora, nell'app che mi interessa, funzionano. Magari mi nascerà il problema per un nuovo progetto. Metto in sospeso.

Grazie :)
 

maxware

Well-Known Member
Licensed User
Longtime User
dunque
se nel manifest e' tipo cosi
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14"/> e mel mio caso la path per il file e' android-sdk\platforms\android-15\android.jar
lo spinner mi viene senza radio button
se invece il manifest e
<uses-sdk android:minSdkVersion="4" /> restando la path identca lo spinner mi viene con il radiobutton
ciaoo Mamo
 

LucaMs

Expert
Licensed User
Longtime User
dunque
se nel manifest e' tipo cosi
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14"/> e mel mio caso la path per il file e' android-sdk\platforms\android-15\android.jar
lo spinner mi viene senza radio button
se invece il manifest e
<uses-sdk android:minSdkVersion="4" /> restando la path identca lo spinner mi viene con il radiobutton
ciaoo Mamo


Si, te lo confermo. Nel progetto zippato di djveleno c'è <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14"/> e vengono senza RB;
nella mia app c'è solo <uses-sdk android:minSdkVersion="4" /> e gli spinner sono ok.

Provengo da altri mondi informatici ed ho "studiato" molto ma molto velocemente Android (e ancora più velocemente ho dimenticato tutto o quasi :), tentando qualcosa (pochissimo) con Eclipse; ma poi ho scoperto B4A e... credo di avere ancora un'icona sul desktop di Eclipse :D

Questo per dire che arrivo appena a capire che quelle "direttive" indicano la versione minima di SDK di Android etc.

Quanto è duro 'sto mondo informatico :eek:

Ciao Mamo
 

djveleno

Active Member
Licensed User
Longtime User
Io non ho scaricato la 3.0 di B4A, ma, lo spinner a me viene con il prompt e gli Rb, quindi penso che il problema nasca dalla nuova versione, dato che l'app in sviluppo da "troppo tempo" con la versione precedente di B4A da gli stessi miei risultati.
 

LucaMs

Expert
Licensed User
Longtime User
no anche con la vecchia funziona
a sto punto mi sono perso. non capisco come la vorreste
Mamo


Mi sono perso anch'io, servirebbe Alpvir, con gli altimetri e magari bussole.

Non è che la vorrei in modo speciale, anzi, non ho aperto il thread e non sapevo nemmeno di avere questo "problema".

Riepilo (ci provo):

l'estetica piacevole degli spinner (bianchi, con PROMPT e RB), io lo ottengo con la 3.0 ma se ci carico il mio vecchio sorgente, mentre se scrivo un nuovo progetto o importo quello di dj, vengono come nell'immagine che ho postato.

Effettivamente, come hai riportato tu nel Manifest, pare che cambiando quello, cambino le cose. Ma non so ancora come e perché in quanto non ci sto dedicando tempo (se non per rispondevi - con piacere!)
 
Top