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.

  • ¿Cómo pasar datos de spinner de una actividad a otra?
  • Disposición de Android: Alinear un TextView y un Spinner
  • Cómo ocultar un elemento en un Spinner de Android
  • ¿Hay alguna manera de usar setOnClickListener con un Spinner de Android?
  • Rellene dinámicamente el Spinner en android desde el texto de edición
  • Android: la lista desplegable / selección de Spinner no se muestra
  • No se puede escribir en el campo de entrada después de cargar una página con InAppBrowser y la carga del hilador
  • Cómo utilizar Android Spinner como una lista desplegable
  • Cómo obtener Spinner valor del elemento seleccionado a la cadena?
  • Añade más espacio entre los elementos de Android Spinner sin estilo personalizado?
  • Por que enNo se selecciona ningunoSeleccionado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.