Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Spinner no muestra el valor seleccionado

He implementado el hilandero por poblar la lista de matrices a través de base de datos.Puedo obtener y mostrar la lista de matrices en mi adaptador de matriz spinner, pero si selecciono el elemento en el hilador no se muestra en el hilandero ¿Qué tenía error aquí?

Aquí está mi código,

Spinner spinner1 = (Spinner) findViewById(R.id.prospin); ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, providerlist); adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner1.setAdapter(adapter1); 

Consigo la secuencia seleccionada del artículo usando esto,

 Spinner provid = (Spinner)findViewById(R.id.prospin); String provider =provid.getSelectedItem().toString(); 

¿Puede alguien ayudarme pls !!!

15 Solutions collect form web for “Spinner no muestra el valor seleccionado”

Esta respuesta puede ser un poco estúpida, pero probarlo. Funcionó para mí.

  1. ¡Compruebe el color de fondo de su hilandero!
  2. Y si es blanco cambiarlo
  3. ¡Disfrútala!

Tengo el mismo problema y resuelto añadiendo notifyDataSetChanged() después de enlazar datos en Spinner.

En primer lugar tengo adaptador de enlace con ArrayList blanco a continuación, obtener la lista de elementos del servidor y se agregó a esa lista, pero se olvidó de notifyDataSetChanged() después de actualización de la lista.

Espero que sea útil.

Prueba esto.

  final ArrayList<String> providerlist= new ArrayList<String>(); Spinner spinner1 = (Spinner) findViewById(R.id.prospin); ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, providerlist); adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner1.setAdapter(adapter1); spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // On selecting a spinner item String item = providerlist.get(position); // Showing selected spinner item Toast.makeText(this, "Selected Country : " + item, Toast.LENGTH_LONG).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); 

Problema:

Spinner no muestra ni el valor predeterminado ni el valor del elemento seleccionado. Pero los elementos del menú desplegable se muestran cuando se seleccionan.

Porque:

¡Fondo y color de texto ambos que son blancos !!!

Soluciones:

Xml (Preferible):

Escriba un diseño personalizado para un elemento spiner y utilícelo en lugar del predeterminado, android.R.layout.simple_spinner_item .

¿Cómo cambiar el tamaño del texto y el color de texto del hilandero?

Código (menos fiable):

 your_spinner_instance.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){ public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { ((TextView) view).setTextColor(Color.RED); } public void onNothingSelected(AdapterView<?> parent) { } }); 

Android necesita una actualización importante o tal vez el dardo y el aleteo deben hacerse cargo …

Gracias Catluc

Utilice wrap_content para la altura de la hiladora. Probablemente no tiene altura suficiente para mostrar texto.

Si tiene un adaptador personalizado debe cambiar el color de texto TextView

 @Override public View getView(int position, View convertView, ViewGroup parent) { TextView view = (TextView) super.getView(position, convertView, parent); view.setTextColor(Color.parseColor("#000000")); return view; } 

Y si usted no tiene un adaptador de encargo usted debe apenas cambiar fondo del hilandero

Debe utilizar el primer Spinner para obtener los valores.

Pruebe el siguiente código:

 String provider = spinner1.getSelectedItem().toString(); 

Lo que está haciendo es obtener el valor predeterminado de la hiladora.

Consulte estos enlaces:

  1. http://www.technotalkative.com/android-spinner-example/
  2. http://www.mkyong.com/android/android-spinner-drop-down-list-example/

De lo contrario, trate de almacenar en la selección del elemento:

 spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapter, View v, int position, long id) { // On selecting a spinner item String item = adapter.getItemAtPosition(position).toString(); // Showing selected spinner item Toast.makeText(getApplicationContext(), "Selected Country : " + item, Toast.LENGTH_LONG).show(); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); 

android:spinnerMode="dropdown" atributo android:spinnerMode="dropdown" en el xml del elemento Spinner declarado

Generalmente los hilanderos se seleccionan por defecto cuando se usan, así que trate de poner en blanco, o cualquier otro dato a la primera posición que sea la posición cero, obtendrá la posición exacta del elemento seleccionado.

El problema de lo que encontré fue con la hoja de estilo.

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="windowNoTitle">false</item> <item name="windowActionBar">true</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

Para el diseño xml use esto

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fitsSystemWindows="true" android:paddingBottom="5dp" style="@style/AppTheme"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="5dp" android:paddingLeft="24dp" android:paddingRight="24dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Spinner" android:layout_marginTop="10dp" android:textColor="@color/colorBlack"/> <Spinner android:id="@+id/Spinner" android:layout_width="fill_parent" android:layout_height="50dp" android:backgroundTint="@color/colorPrimary" android:textColorHint="#05ab9a" android:padding="15dp" style="@style/Base.Widget.AppCompat.Spinner.Underlined" tools:targetApi="lollipop" /> </LinearLayout> </ScrollView> 

Y finalmente para la clase

 String [] NUMBERS= {"3 ","6 ","13 "}; Spinner s_spinner = (Spinner) findViewById(R.id.Spinner); ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, NUMBERS); // Specify the layout to use when the list of choices appears spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // attaching data adapter to spinner s_spinner.setAdapter(spinnerAdapter ); 

Intente este código

 ArrayAdapter<String> arrayAdapte=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,states); arrayAdapte.setDropDownViewResource(android.R.layout.simple_list_item_1 ); spinnerState.setAdapter(arrayAdapte); String data=spinnerState.getSelectedItem().toString(); // this is select particular item from list; int position=spinnerState.getSelectedItemPosition(); // this return position of data selected in list; 

prueba esto:-
ArrayAdapter stateNameAdaptor = nuevo ArrayAdapter (esto, android.R.layout.simple_list_item_1, stateNameList); StateNameAdaptor.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item); SpnState.setAdapter (stateNameAdaptor);

Esta respuesta puede ser un poco estúpida, pero si haces el mismo error, entonces intenta … establecer valores en tu ArrayList primero y luego asignar ese arrayList a spinner. He declarado un arrayList global y lo puso a spinner primero y luego agregar valores a él de otro método … en ese momento me enfrenté al mismo problema. De lo contrario, puede hacer notifyDataSetChanged () a su arrayList.

Tienes que hacer algunos cambios como:

 Spinner spinner1 = (Spinner) findViewById(R.id.prospin); ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, providerlist); adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

En lugar de "android.R.layout.simple_spinner_dropdown_item"

 adapter1.setDropDownViewResource(android.R.layout.simple_list_item_activated_1); 

Utilice "android.R.layout.simple_list_item_activated_1"

 spinner1.setAdapter(adapter1); 

Se resaltará el valor seleccionado en consecuencia. El color seleccionado se elige según el tema predeterminado de tus aplicaciones.

Para obtener más información, siga el siguiente enlace: https://developer.android.com/reference/android/R.layout.html#simple_list_item_activated_1

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.