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
- Carácter turco en SQLite mientras utiliza la expresión LIKE
- Problema en sqlite con "como" en android
- ¿Debo habilitar la restricción de clave externa en onOpen o onConfigure?
- Sqlite no pudo leer row 0 col -1 de cursorwindow de cursor en servicio de alarma
- La mejor manera de agrupar fotos con app: archivos o en la base de datos sqlite?
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?
- La base de datos SQLite de Android se corrompe
- Android abrir o crear base de datos
- Android, manejar SQLiteConstraintException
- IOS / Android sincronización con Delphi / C # aplicación de escritorio
- Limitar el número de filas devueltas desde sqlite
- Acceso a la base de datos SQLite desde la línea de comandos
- Android sqlite lee todas las filas a la vez
- HTML5 Webapp como icono o aplicación regular en iPhone y Android.
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
-
Obtiene el valor de la base de datos
-
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()
. -
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!!!
- Compruebe la conexión a Internet en Android WebView (Córdoba)
- Gradle – build sass por productflavor (carpeta múltiple)