Bonjour à toutes et à tous,
Je fais appel à la communauté pour m'expliquer une ou deux choses afin de réaliser une application sous android studio.
j'ai lu/vu plusieurs tutos sur le net mais je n'arrive pas à régler mon problème. Je pense que c'est dû à une mauvaise compréhension du principe "activité", " vue", "fragment" ou .... Je suis confronté à ce problème lors de la "gestion" de ma base de donnée.
Le projet est composé de plusieurs fragments. Dans l'un d'eux, j'ai des EditText et un bouton pour sauvegarder les données en base. Cette partie fonctionne bien
Maintenant je voudrais afficher ces données dans un autre fragment, et là , c'est le drame. J'ai essayé deux choses sans parvenir à mes fins :
1/ Dans le Oncreate du fragment j’interroge ma base de donnée pour modifier mon affichage en fonction des données.
Problème, je ne peux pas interroger ma base depuis le java du fragment (problème de class je pense, enfin je ne sais pas trop car je n'ai pas bien compris ce principe)
PS : je n'ai pas de code à vous montrer pour ce cas car je suis passé au 2/
2/ Je persévère et décide donc, par obligation, de modifier l'affichage de mon fragment depuis le main après avoir ajouté les données.
Problème, l'appli plante. j'ai mis des Log.i pour isoler l'erreur. Elle apparaît lorsque je veux modifier le TableLayout de mon fragment (qui n'est pas visible, qui doit par conséquent être en Pause).
Le code est parfois plus parlant qu'un long discourt :
Dans le mainActivity.java
j'ai un problème à chaque fois que je fais appel à table (table.removeViewInLayout(findViewById(R.id.table_proprio)); et table.addView(row); )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void modifier_fragment_proprio (ArrayList Tableau_proprio){ TableLayout table = (TableLayout) findViewById(R.id.table_proprio); // on prend le tableau défini dans le layout TableRow row; // création d'un élément ligne TextView MonTextView; // création d'un élément textview ImageView MonImageView; // création d'un élément ImageView table.removeViewInLayout(findViewById(R.id.table_proprio)); //supprime toutes les lignes du tableau for (int i=0; i < Tableau_proprio.size();i++){ //pour chaque ligne (chaque proprio) row = new TableRow(this); // création d'une ligne MonImageView = new ImageView(this); // création d'une cellule image MonImageView.setImageResource(R.drawable.proprietaireok); // ajout d'une image dans la cellule image MonTextView = new TextView(this); // création cellule texte MonTextView.setText("texte deuxieme cellule"); // ecriture du texte dans la cellule row.addView(MonImageView); //ajout d'une cellule dans la ligne row.addView(MonTextView); //ajout d'une deuxième cellule dans la ligne table.addView(row); //ajout de la ligne au tableau } }
Dans le xml du fragment, rien de foufou
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <ScrollView android:id="@+id/scrollViewproprio" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableLayout android:id="@+id/table_proprio" android:layout_width="match_parent" android:layout_height="wrap_content"> </TableLayout> </ScrollView>
Merci d'avance pour le temps que vous avez passé à me lire et vos conseils.
Cordialement
Partager