Android – Set Spinner Punto de inicio

Esto es probablemente una simple cosa directa a hacer para algunos.

Tengo este código …

SQLiteDatabase db = dbs.getReadableDatabase(); String SQL = "SELECT * FROM Table"; final Cursor cursor = db.rawQuery(SQL, null); array_spinner1[0] = "Select:"; while (cursor.moveToNext()) { array_spinner1[i]= cursor.getString(1) + " - " + cursor.getString(2); i ++; } final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, array_spinner1); s1.setAdapter(adapter); 

Relleno el arreglo y todo funciona bien. Sin embargo, quiero iniciar la posición de la hiladora no en el primer elemento (Seleccionar). Quiero que comience donde el elemento en el cursor = 'aquí' por ejemplo. Espero tener sentido

Para ponerlo en contexto en la columna 'Tabla' 1 es el rango de edad de y la columna 2 es el rango de edad a. Así que en el spinner consigo 0-5, 6-10, 11-20 etc.

Y lo que quiero hacer es iniciar el hilandero seleccionado en 11-20 si el dob del usuario lo hace esa edad ….? Sé que setSelection seleccionaría un cierto valor, pero necesito resolver el correcto para la edad de los usuarios?

Así que básicamente quiero saber cómo trabajar eso y poblar seleccionar la ruleta correctamente, gracias

La clase Spinner hereda setSelection(int position, boolean animate) de AbsSpinner. Llame a ese método con la posición de su valor predeterminado deseado (y false para el bit animado). Sólo necesita iterar a través de su lista de valores posibles para verificar las condiciones, así que tal vez no entiendo donde está su dificultad?

Leer esto una segunda vez me da la impresión de que esto no es realmente una pregunta de Android. Lo que estás buscando es cómo ver si una fecha dada de nacimiento coloca a un usuario en un determinado grupo de edad. He visto matemáticas de edad hechas en Joda aquí: ¿Cómo calculo la edad de alguien en Java?

A partir de ahí es cuestión de ver si la edad cae dentro de su rango dado.

 boolean isInRange(Years age, int start, int end) { int intAge = age.getYears(); if (intAge >= start && intAge <= end) { return true; } else { return false; } } 

Una adición más a mi respuesta aquí. Si no quieres lidiar con la ejecución de Joda en Android, he aquí otra posibilidad para calcular la edad usando sólo los componentes estándar de Java. Ver el tercer post.

http://www.coderanch.com/t/391834/java/java/there-better-way-calculate-age

Por su solicitud de un ejemplo, aquí es SimpleDateFormat para cadenas de fecha.

 String dateString = "04/02/2004"; SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy"); Date parsedDate = format.parse(dateString, 1); 
 String DOB = "04/02/2004"; SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy"); Date parsedDate = format.parse(DOB, 0); Date dateNow = new Date(Date.getYear(),Date.getMonth(),Date.getDay()); Date dateDiff = dateNow - parsedDate; int Age = dateDiff.getYear(); if(Age>0 && Age<5){ pos = 0; }//etc.... s1.setSelection(pos, false); 

No lo he comprobado, pero creo que es algo así que usted está después. Podría estar equivocado. Lo probará en un minuto.

  • Lanzamiento de hilanderos en android
  • JSON Parsing problema con Spinners
  • Spinner que agrega la matriz de la secuencia en la selección del artículo cómo puede conseguir el valor relacionado artículo en androide
  • ¿Cómo obtiene el valor seleccionado de un Spinner?
  • Diálogo personalizado de la ruleta para Android
  • SetSelection en Spinner basado en rowId
  • Disposición de Android: Alinear un TextView y un Spinner
  • Cómo rellenar Spinner con ArrayList en Android
  • Spinner con ArrayAdapter personalizado para objetos que no muestran el elemento seleccionado
  • El indicador de Spinner no se muestra
  • Spinner no consigue el foco
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.