valor texto studio posicion por obtener hacer guardar eventos defecto android spinner simplecursoradapter android-spinner

texto - spinner android studio



¿Cómo establecer Spinner predeterminado por su valor en lugar de la posición? (5)

Compare la cadena con el valor del índice

private void selectSpinnerValue(Spinner spinner, String myString) { int index = 0; for(int i = 0; i < spinner.getCount(); i++){ if(spinner.getItemAtPosition(i).toString().equals(myString)){ spinner.setSelection(i); break; } } }

Tengo 1-50 registros en la base de datos. Estoy obteniendo esos datos usando el cursor y establezco esos valores en Spinner usando Simple Cursor Adapter. Ahora lo que necesito es que quiera establecer un valor, por ejemplo, valor 39º. Pero no por su posición que quiero establecer por su valor.

Sé cómo configurar el spinner predeterminado por su posición

spinner.setSelection(39)

configurará la ruleta a ese valor.

Pero no tenía idea de configurar el valor predeterminado de hilandero por su valor (texto) en la base de datos. Sé los valores en la base de datos. Por ejemplo, "libros" es uno de los valores en la ruleta. Necesito establecer el spinner por defecto como libros.

¿Hay alguna manera posible de hacer esto?


Finalmente, resolví el problema usando la siguiente manera, en la cual la posición del girador se puede obtener por su cuerda

private int getPostiton(String locationid,Cursor cursor) { int i; cursor.moveToFirst(); for(i=0;i< cursor.getCount()-1;i++) { String locationVal = cursor.getString(cursor.getColumnIndex(RoadMoveDataBase.LT_LOCATION)); if(locationVal.equals(locationid)) { position = i+1; break; } else { position = 0; } cursor.moveToNext(); }

Llamar al método

Spinner location2 = (Spinner)findViewById(R.id.spinner1); int location2id = getPostiton(cursor.getString(3),cursor); location2.setSelection(location2id);

Espero que ayude a alguien ...


Puedes hacerlo fácilmente así.

String cls=student.getStudentClass(); class_spinner.setSelection(classArray.indexOf(cls),true);


Si está configurando los valores de spinner por arraylist o array , puede establecer la selección del spinner usando el índice del valor.

String myString = "some value"; //the value you want the position for ArrayAdapter myAdap = (ArrayAdapter) mySpinner.getAdapter(); //cast to an ArrayAdapter int spinnerPosition = myAdap.getPosition(myString); //set the default according to value spinner.setSelection(spinnerPosition);

ver el enlace ¿Cómo establecer el ítem seleccionado de Spinner por valor, no por posición?


así es como lo hice:

String[] listAges = getResources().getStringArray(R.array.ages); // Creating adapter for spinner ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listAges); // Drop down layout style - list view with radio button dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // attaching data adapter to spinner spinner_age.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.spinner_icon), PorterDuff.Mode.SRC_ATOP); spinner_age.setAdapter(dataAdapter); spinner_age.setSelection(0); spinner_age.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String item = parent.getItemAtPosition(position).toString(); if(position > 0){ // get spinner value Toast.makeText(parent.getContext(), "Age..." + item, Toast.LENGTH_SHORT).show(); }else{ // show toast select gender Toast.makeText(parent.getContext(), "none" + item, Toast.LENGTH_SHORT).show(); } } @Override public void onNothingSelected(AdapterView<?> parent) { } });