Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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?

  • ¿Cómo actualizar el esquema de la tabla después de una actualización de la aplicación en Android?
  • Android SQL Lite no crece
  • Eliminar fila de SQLite con cláusula where con cláusulas múltiples
  • Cómo agregar fecha en la base de datos sqlite
  • SQLite ordena caracteres especiales alfabéticamente
  • Encriptación y bloqueo de bases de datos Android
  • Compruebe que la base de datos sqlite está abierta o cerrada en android
  • SQLite externo Contenido del archivo que accede al error
  • 2 Solutions collect form web for “Leer 3 elementos seleccionados al mismo tiempo”

    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!!!

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.