java android eclipse

java android eclipse - Java - Programmation

Marsh Posté le 24-05-2013 à 11:35:18    

Bonjour,
 
J'aimerais afficher dans une vue, 2 colonnes : une colonne "date", et une colonne "formations".
Ces données sont récupérées grâce à une requête.
 
Mon problème : je ne sais pas s'il faut que j'utilise une liste, ou un tableau, je n'arrive pas non plus à afficher mon tableau ou ma liste (j'ai essayé avec les 2).
 
Mon code :  

Code :
  1. //Création d'un tableau à 2 colonnes
  2. private String[][] lesFormations = {};
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5.  super.onCreate(savedInstanceState);
  6.  setContentView(R.layout.activity_display_message_formations_proposees);
  7.  final DataBaseHelper myDbHelper = new DataBaseHelper(this);
  8.         //Tests sur la création et l'ouverture de la base de données
  9.         try
  10.      {
  11.          myDbHelper.createDataBase();
  12.          Log.i("test", "createDataBase" );
  13.      } catch (IOException ioe){
  14.          throw new Error("Unable to create database" );
  15.      }
  16.      try
  17.      {
  18.          myDbHelper.openDataBase();
  19.          Log.i("test", "openDataBase" );
  20.      } catch(SQLException sqle){
  21.          throw sqle;
  22.      }
  23.    
  24.    
  25.      SQLiteDatabase db  = myDbHelper.getReadableDatabase();
  26.    
  27.      //Récupération de la liste créée dans la vue
  28.  //ListView listeFormations = (ListView) findViewById(R.id.lvFormationsProposees);
  29.  
  30.  //Exécution de la requête récupérant la description et la date de chaque formation dans la table Formations de la base de données
  31.  String reqVerif = "select description, date from Formations;";
  32.    
  33.  Cursor resultat = db.rawQuery(reqVerif, null);
  34.  //On crée 2 integers : nbResultats qui prend pour valeur le nombre d'occurrences renvoyés par la requête et i, un compteur
  35.  int nbResultats = resultat.getCount()-1;
  36.  int i;
  37.  Log.i("test", String.valueOf(nbResultats));
  38.  //On se place au niveau de la première occurrence
  39.  resultat.moveToFirst();
  40.  //On fait une boucle For : pour i allant de 0 à nbResultats, on ajoute les occurrences retournées par la requête au tableau
  41.  for (i=0; i<=nbResultats; i++)
  42.  {
  43.   Log.i("test", String.valueOf(i));
  44.                  Log.i("test", resultat.getString(0));
  45.                  Log.i("test", resultat.getString(1));
  46.                  lesFormations[i][0] = resultat.getString(0);
  47.                  lesFormations[i][1] = resultat.getString(1);
  48.                  resultat.moveToNext();
  49.  }
  50.  //listeFormations.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, lesFormations));
  51.  System.out.println(lesFormations);
  52. }


 
Les commentaires en rouge représentent ce que j'ai essayé avec les listes (à la place du system.out.println(lesFormations) )
 
ça me met un force to close avec la liste, et un écran noir avec le tableau...
Merci !  :jap:

Reply

Marsh Posté le 24-05-2013 à 11:35:18   

Reply

Marsh Posté le 24-05-2013 à 12:03:11    

je suis en train d'essayer également avec un  GridView listeFormations = (GridView) findViewById(R.id.gvFormationsProposees);
ainsi qu'avec 2 requêtes : une pour la date, puis une pour la description, et j'ai modifié ma boucle ainsi :  

Code :
  1. while(i<=nbResultats)
  2.  {
  3.   Log.i("test", String.valueOf(i));
  4.          Log.i("test", resultatDate.getString(0));
  5.          Log.i("test", resultatDescription.getString(0));
  6.          lesFormations[i] = resultatDate.getString(0);
  7.          i++;
  8.          lesFormations[i] = resultatDescription.getString(0);
  9.          resultatDate.moveToNext();
  10.          resultatDescription.moveToNext();
  11.          i++;
  12.        
  13.  }


Message édité par minimoack le 24-05-2013 à 12:03:31
Reply

Marsh Posté le 24-05-2013 à 13:33:45    

bon c'est bon j'ai réussi. Maintenant, est-ce que quelqu'un saurait comment récupérer une valeur qui est dans une autre vue?
 
j'ai ma vue n°1 dans laquelle on saisit un identifiant et un mot de passe, et j'aimerais récupérer l'identifiant dans ma vue n°3 est-ce possible?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed