Lire 3 éléments sélectionnés en même temps

Comment lire 3 éléments sélectionnés dans le même temps? J'ai spinner1,2,3 dans WorkDetails.java et leur valeur a été insérée dans SQLite . Dans mon UpdatePage.java , je souhaite récupérer l'élément sélectionné et l'élément sélectionné doit être affiché en premier dans spinner project1,project2 and project3 .

UpdatePage.java

  • Dynamic ListPreference dans Android
  • Passer une chaîne d'une activité à une autre activité dans Android
  • Android: Prise de contrôle complet du téléphone (mode kiosque), est-ce possible? Comment?
  • Synchronisation de deux ViewPagers utilisant OnPageChangeListener
  • Utilisation de la bibliothèque android.support.v4 dans l'idée Intellij
  • Impossible de résoudre: com.google.firebase: firebase-core: 9.0.0
  •  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); } 

    Supposons que spinner1 détient la valeur 1, spinner2 détient 2 et spinner3 détient 3. Lorsque vous venez de updatePage , spinner project1 devrait afficher 1 en premier, project2 affichage 2 et ainsi de suite. Mais le problème est maintenant project1,2, et 3 affichent la valeur 1 en premier … comment puis-je réaliser cela?

  • Photo de contact Android: Comment récupérer (Google) une image de contact sur le Web (et donc, "annuler" un ancien changement d'image local)
  • Comment ajouter une boîte de message avec le bouton OK
  • Comment enregistrer le contenu LogCat dans le fichier?
  • Ajouter la bibliothèque java au projet Android Studio avec le référentiel maven
  • Comment fermer un SearchView par programme?
  • Lecture et écriture SQLite simultanées
  • 2 Solutions collect form web for “Lire 3 éléments sélectionnés en même temps”

    Vous pouvez essayer un peu de logique à cette fin

    Prenez trois valeurs de la base de données. Laissez les être

    selected_value_of_spinner1 , selected_value_of_spinner2 , selected_value_of__spinner3

    Ensuite, définissez votre méthode getPosition comme ci-dessous

     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; } 

    Le spectacle montre les valeurs de la base de données dans vos filatures comme suit

     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)); 

    Fondamentalement, ce qui se passe ici est

    1. Vous obtenez la valeur de la base de données

    2. Vous combinez la valeur obtenue de la base de données dans votre spinner pour obtenir sa position en spinner par la méthode getPosition() .

    3. Réglez la valeur de la setSelection(position) fonction de la position que vous obtenez à partir de l'étape 2 par la setSelection(position) .

    Puisque vous disposez de 3 éléments Spinner , vous pouvez le faire:

     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) { } }); 

    Et déclarer:

     String selectedItem1; String selectedTtem2; String selectedItem3; 

    En tant que variables globales. J'espère que cela aide!!!

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.