Si bien esto puede responder teóricamente a la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia.
Bill the Lizard
use este android.R.layout.simple_spinner_dropdown_item en lugar de este android.R.layout.simple_spinner_item se ve mucho mejor
sai Gorantla
¿Qué es array_spinner? el nombre de la matriz es arraySpinner. ¿Es un error de ortografía o tiene que ser así solo?>
SurajS
1
Considere agregar adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);(antes s.setAdapter(adapter);para que el menú desplegable se vea mejor.
ban-geoengineering
1
@StephenM cambió el enlace
pankajagarwal
99
Encontré otra opción: definición de ruleta en el archivo de diseño
Para agregar un elemento en Spinner, puede hacer una cosa, intentar crear un adaptador y luego agregar / quitar elementos en el adaptador, luego puede vincular fácilmente ese adaptador a Spinner usando el setAdapter()método.
Gracias por tu respuesta, obtuve la solución y ahora tengo un problema.
Quiero recuperar el elemento seleccionado de spinner, es decir, su posición, ya que además quiero pasarlo a otro método, mira lo que hice ... dataspin.setOnItemSelectedListener (new myitemlistener ());
dataspin es mi objeto Spinner
@Override public void onItemSelected (AdapterView <?> Parent, View view, int position, long id) {// TODO Método generado automáticamente stub String p = parent.getItemAtPosition (position) .toString (); int pos = (int) parent.getItemIdAtPosition (posición); System.out.println ("posición de la ruleta ..." + pos); setSearchView (pos); }
pero entonces, ¿cómo se obtiene el artículo seleccionado?
Desmotivado el
1
Primer TypeCast en un archivo Java. Luego usa Spinner spinner; spinner = findViewById (R.id.spinner); spinner.setOnItemClickListener (nuevo AdapterView.OnItemClickListener () {@Override public void onItemClick (AdapterView <?> parent, View view, int position, long id) {}});
ZIA ANSARI
5
Este código básicamente lee un objeto de matriz JSON y convierte cada fila en una opción en la ruleta que se pasa como parámetro:
publicArrayAdapter<String> getArrayAdapterFromArrayListForSpinner(ArrayList<JSONObject> aArrayList,String aField){ArrayAdapter<String> aArrayAdapter =newArrayAdapter<String>(context, android.R.layout.simple_spinner_item);
aArrayAdapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);//android.R.layout.simple_spinner_dropdown_itemtry{for(int i =0; i < aArrayList.size(); i++){
aArrayAdapter.add(aArrayList.get(i).getString(aField));}}catch(JSONException e){
e.printStackTrace();ShowMessage("Error while reading the JSON list");}return aArrayAdapter;}
Respuestas:
Archivo XML:
Archivo Java:
Ver ejemplo de ruleta .
fuente
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
(antess.setAdapter(adapter);
para que el menú desplegable se vea mejor.Encontré otra opción: definición de ruleta en el archivo de diseño
Definición de elementos en el archivo array.xml:
Enlace a la fuente completa del código
fuente
Prueba este código:
También puede agregar el valor del elemento giratorio a través del archivo xml de matriz de cadenas.
En mainActivity.java:
fuente
Para agregar un elemento en Spinner, puede hacer una cosa, intentar crear un adaptador y luego agregar / quitar elementos en el adaptador, luego puede vincular fácilmente ese adaptador a Spinner usando el
setAdapter()
método.Aquí hay un ejemplo:
fuente
En tu diseño:
fuente
Este código básicamente lee un objeto de matriz JSON y convierte cada fila en una opción en la ruleta que se pasa como parámetro:
fuente
Agregue una ruleta al diseño XML y luego agregue este código al archivo Java:
fuente
Agregue este código después de actualizar la lista
Suponer:
El nombre de la variable ArrayAdapter <String> es dataAdapter y el nombre de la variable List es keys .
fuente
Para agregar un elemento más a Spinner , puede:
fuente
Es solo para borrar el adaptador, agregar todos los itens y notificar el cambio como se muestra a continuación:
fuente
Una forma más sencilla es utilizar la biblioteca de material spinner: https://github.com/jaredrummler/MaterialSpinner
primero agregue a su proyecto:
y use así:
y código java que puede agregar elementos en java tan fácil:
fuente