Spanish spinner con elemento seleccionado

Ninja33

Member
En una aplicación e generado un spinner y por defecto aparece un radio button indicado el item seleccionado cuando se despliega.
WhatsApp Image 2023-06-08 at 18.24.19.jpeg
WhatsApp Image 2023-06-08 at 18.26.58.jpeg

Lo hice en otra aplicación y no me aparece.
 

vecino

Well-Known Member
Licensed User
Longtime User
¿Y qué quieres hacer? ¿cuál es el problema?
Yo no lo he entendido.
 

Ninja33

Member
El problema es que no se cómo hacer para definir que el spinner me muestre como en el primer caso el ítem seleccionado
 

vecino

Well-Known Member
Licensed User
Longtime User
Ejemplo:
B4X:
spinner1.SelectedIndex=2
La primera posición es 0.
 

Ninja33

Member
Evidentemente no me hago entender.
Presta atención la diferencia entre las dos fotos.
En una "muestra" el ítem seleccionado en el spinner y en otra no. Cómo hago para que "muestre"
 

josejad

Expert
Licensed User
Longtime User
La manera más fácil de hacerte entender y de que podamos ayudarte de la manera más rápida, es que subas un proyecto mostrando el problema.
Veo la diferencia entre ambos (uno tiene un radiobutton a la derecha y el otro no), pero si creo un proyecto y añado un Spinner, el mío se ve como el segundo.

Crea un proyecto nuevo, copia del diseñador esos dos spinners y pégalos en el proyecto nuevo. Copia las rutinas con las que metes datos en los spinners y sube el proyecto. Será más fácil viendo exactamente cómo lo haces.
 

Ninja33

Member
Es que el proyecto no tiene que ver con la definición del spinner.
El proyecto con el radio butrón, me lo tomo por defecto. Solo definiendo el spinner en el designer.
En otro proyecto. Ya con una versión más nueva de b4a. Al definir un spinner , ya no muestra el radio butrón. Muestra como el segundo caso.
Los dos son definiciones de spinner por defecto. Puede ser por la versión del b4a?
Le sacaron la opción de que muestre?
 

josejad

Expert
Licensed User
Longtime User
Puede ser por la versión del b4a?
Lo dudo, el spinner es nativo de android, lo que sí puede variar es la apariencia del spinner en distintas versiones de android, pero no lo he usado nunca.
 

vecino

Well-Known Member
Licensed User
Longtime User
Sí se muestra diferente dependiendo de la versión, aunque se puede especificar en el manifest.
 

Ninja33

Member
bueno, en funcion a lo que me han dicho, he jugado un poco con el manifiest y ahi esta el tema.
el que funciona, es decir muestra los radio button y muestra que item está seleccionado en el spinner tiene el siguiente renglon.
<uses-sdk android:minSdkVersion="4" />
si modifico esto y pongo lo siguiente, no se ve los radios buttons
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="28"/> (ahi no anda)

otra linea del manifiest que no permite mostrar es:
CreateResourceFromFile(Macro, Themes.LightTheme)

conclusion, como no se para que son esas lineas del manifiest, las saco y el boton se pone gris como a mi me gusta....
me podran explicar los que saben... Gracias
 

Ninja33

Member
bueno, en funcion a lo que me han dicho, he jugado un poco con el manifiest y ahi esta el tema.
el que funciona, es decir muestra los botones de radio y muestra que el elemento está seleccionado en el spinner tiene el siguiente renglón.
<usa-sdk android:minSdkVersion="4" />
si modifica esto y pongo lo siguiente, no se ve los botones de radio
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="28"/> (ahi no anda)

otra linea del manifiesto que no permite mostrar es:
CreateResourceFromFile(Macro, Themes.LightTheme)

conclusión, como no se para que son esas lineas del manifiesto, las saco y el boton se pone gris como a mi me gusta....
me podran explicar los que saben...
y aparecen los radiobuttons
 

Rubsanpe

Active Member
Licensed User
Hola. El caso de los radiobuttons es porque tienes seleccionado en el manifiesto una version muy antigua de Android, anterior a Android 5. Entiendo que si no lo indicas el telefono utilizara la version que el tiene instalada, por lo que apareceria diferente en cada dispositivo. Lo correcto es usar algo asi en el manifiesto:

B4X:
SetApplicationAttribute(android:theme, "@style/LightTheme")
CreateResource(values, colors.xml,
<resources>
    <color name="actionbar">#ff039be5</color>
   <color name="statusbar">#ff006db3</color>
   <color name="textColorPrimary">#ffffffff</color>
   <color name="navigationBar">#ff006db3</color>
</resources>
)
CreateResource(values-v20, theme.xml,
<resources>
    <style name="LightTheme" parent="@android:style/Theme.Material.Light">
        <item name="android:colorPrimary">@color/actionbar</item>
        <item name="android:colorPrimaryDark">@color/statusbar</item>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:navigationBarColor">@color/navigationBar</item>
    </style>
</resources>
)
CreateResource(values-v14, theme.xml,
<resources>
    <style name="LightTheme" parent="@android:style/Theme.Holo.Light">
       <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
    </style>
   <style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
       <item name="android:background">@color/actionbar</item>
   </style>
</resources>
)

Para que use diferentes aspectos segun la version del dispositivo.

Rubén
 
Last edited:

Ninja33

Member
Hola. El caso de los radiobuttons es porque tienes seleccionado en el manifiesto una version muy antigua de Android, anterior a Android 5. Entiendo que si no lo indicas el telefono utilizara la version que el tiene instalada, por lo que apareceria diferente en cada dispositivo. Lo correcto es usar algo asi en el manifiesto:

B4X:
SetApplicationAttribute(android:theme, "@style/LightTheme")
CreateResource(values, colors.xml,
<resources>
    <color name="actionbar">#ff039be5</color>
   <color name="statusbar">#ff006db3</color>
   <color name="textColorPrimary">#ffffffff</color>
   <color name="navigationBar">#ff006db3</color>
</resources>
)
CreateResource(values-v20, theme.xml,
<resources>
    <style name="LightTheme" parent="@android:style/Theme.Material.Light">
        <item name="android:colorPrimary">@color/actionbar</item>
        <item name="android:colorPrimaryDark">@color/statusbar</item>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:navigationBarColor">@color/navigationBar</item>
    </style>
</resources>
)
CreateResource(values-v14, theme.xml,
<resources>
    <style name="LightTheme" parent="@android:style/Theme.Holo.Light">
       <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
    </style>
   <style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
       <item name="android:background">@color/actionbar</item>
   </style>
</resources>
)

Para que use diferentes aspectos segun la version del dispositivo.

Rubén
Luego lo pruebo. Porque solucioné como dije más arriba. Poniendo minsdkversión=" 4"
en lugar de 5
 
Top