Leer 3 elementos seleccionados al mismo tiempo

¿Cómo leer 3 spinner elemento seleccionado en el mismo tiempo? Tengo spinner1,2,3 en WorkDetails.java y su valor se ha insertado en SQLite . En mi UpdatePage.java , quiero recuperar el elemento seleccionado y el elemento seleccionado se mostrará primero en spinner project1,project2 and project3 .

UpdatePage.java

 public void RetrievePage(String name,String date, String id) { final String name2 = name; final String date2=date; final String id2 = id; final EditText name3 = (EditText) findViewById(R.id.editText9); final EditText date3 = (EditText) findViewById(R.id.editText12); name3.setText(name2); date3.setText(date2); database = dbHelper.getWritableDatabase(); c = database.rawQuery( "SELECT i.Weather, i.Status,w.Subcontractors, w.NumberOfPerson,"+ "w.NumberOfHours, wd.Project, wd.WorkDescription, wd.Per,"+ "wd.TimeIn, wd.TimeOut FROM Information i LEFT JOIN WorkForce w "+ "ON w.TInfo_id = i._id "+ "LEFT JOIN WorkDetails wd ON wd.Twf_id=w._id "+ "WHERE i.Name = ? AND i._id= ? ", new String[]{String.valueOf(name2),String.valueOf(id2)}, null); if (c != null) { while (c.moveToNext()) { Details WD = new Details(); String Project11 = c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project)); String Project22 =c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project)); String Project33 =c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project)); addProject1(Project11); addProject2(Project22); addProject3(Project33); WD.setProject(Project11); WD.setProject(Project22); WD.setProject(Project33); } } c.close(); } public void addProject1(String l) { project1 = (Spinner) findViewById(R.id.spinner8); String[] arr = new String[]{"1","2","3"}; List<String> list = new ArrayList<String>(); String project11 = l; list.add(project11); for (String s : arr) { if (!list.contains(s)) { list.add(s); } } ArrayAdapter<String> adapter = new ArrayAdapter<String>(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); project1.setAdapter(adapter); } public void addProject2(String d) { project2 = (Spinner)findViewById(R.id.spinner9); String[] arr = new String[]{"1","2","3"}; List<String> list = new ArrayList<String>(); String project22 = d; list.add(project22); for (String s:arr) { if(!list.contains(s)) { list.add(s); } } ArrayAdapter<String> adapter = new ArrayAdapter<String>(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); project2.setAdapter(adapter); } public void addProject3(String e) { project3 = (Spinner)findViewById(R.id.spinner13); String[] arr = new String[]{"1","2","3"}; List<String> list = new ArrayList<String>(); String project33 = e; list.add(project33); for (String s:arr) { if (!list.contains(s)) { list.add(s); } } ArrayAdapter<String> adapter = new ArrayAdapter<String>(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); project3.setAdapter(adapter); } 

Supongamos que spinner1 tiene el valor 1, spinner2 tiene 2 y spinner3 tiene 3. Cuando vienen a updatePage , el proyecto project1 debe mostrar primero 1, mostrar el proyecto 2 y así sucesivamente. Pero el problema ahora es project1,2, y 3 valor de visualización 1 primero … ¿cómo puedo lograr esto?

Usted puede intentar un poco de lógica para este propósito

Tome tres valores de la base de datos. Déjalos ser

selected_value_of_spinner1 , selected_value_of_spinner2 , selected_value_of__spinner3

A continuación, defina su método getPosition como a continuación

 public int getPosition(Spinner your_spinner, String string_value){ int position = 0; for (int i=0;i<your_spinner.getCount();i++){ if (your_spinner.getItemAtPosition(i).equals(string_value)){ position = i; } } return position; } 

La demostración los valores conseguidos de la base de datos en sus hilanderos como siguiendo

 your_spinner1.setSelection(getPosition(your_spinner1, selected_value_of_spinner1)); your_spinner2.setSelection(getPosition(your_spinner2, selected_value_of_spinner2)); your_spinner3.setSelection(getPosition(your_spinner3, selected_value_of_spinner3)); 

Básicamente lo que sucede aquí es

  1. Obtiene el valor de la base de datos

  2. Usted coincide con el valor obtenido de la base de datos en su hiladora para obtener su posición en spinner por el método getPosition() .

  3. Establezca el valor del hilandero de acuerdo con la posición que obtiene del paso 2 mediante el setSelection(position) .

Puesto que usted está teniendo 3 artículos de Spinner entonces usted puede hacer esto:

 project1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { selectedItem1 = list.get(position).toString(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); project2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { selectedItem2 = list.get(position).toString(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); project3.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { selectedItem3 = list.get(position).toString(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); 

Y declara:

 String selectedItem1; String selectedTtem2; String selectedItem3; 

Como variables globales. ¡¡¡Espero eso ayude!!!

  • Cómo insertar a granel de Json a Sqlite en Android
  • Rendimiento de Android ContentProvider
  • Android: acceder a la base de datos SQLite a través del proveedor de contenido o implementar DAO?
  • Cómo obtener las cadenas de un cursor en Android?
  • Forma preferida de actualizar sqlite db en android
  • ¿Es necesario cerrar una base de datos abierta con window.openDatabase?
  • ¿Cómo eliminar todos los registros de la tabla en sqlite con Android?
  • Problema de corrupción de bases de datos precargado en la aplicación de Android
  • ¿Cuántas tablas y bases de datos puedo crear en Android sqlite?
  • Compruebe que la base de datos sqlite está abierta o cerrada en android
  • Eliminar el número especificado de filas de la base de datos SQLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.