Bonsoir !
EDIT : En fait c’était la fonction ligne 62 qui n’était pas appelée. Problème résolu.
Je suis en train de créer une petite application pour m’entraîner sur Android Studio, mais je bloque depuis plus de deux heures et je ne trouve toujours pas sur internet de solution.
J'essaye de trouver un moyen de rafraichir mon "Activity". En effet, dans mon App, lorsque je clique sur un bouton, je dois ajouter du contenu dans un "TabSpec".
J'ai donc le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | public void rechercheTerminee(String result) { try { TabAnneeContent tabAnneeContent = new TabAnneeContent(); // Récupération des données JSONObject jsonObject = new JSONObject(result); JSONArray jsonArray = jsonObject.getJSONArray("results"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject film = jsonArray.getJSONObject(i); String titreFilm = film.getString("original_title"); // Création du View du titre du film tabAnneeContent.addMovie(titreFilm); } tabAnnee.setContent(tabAnneeContent); // tabAnnee est un TabSpec tabHost.invalidate(); tabHost.setup(); progressDialog.hide(); } catch (JSONException e) { progressDialog.hide(); e.printStackTrace(); showDialogBox("Erreur", "Erreur interne."); } } private class TabAnneeContent implements TabHost.TabContentFactory { private ScrollView scrollView; private LinearLayout linearLayout; public TabAnneeContent() { // Création du Tab scrollView = new ScrollView(FilmsPopulairesActivity.this); scrollView.setLayoutParams(new ScrollView.LayoutParams(ScrollView.LayoutParams.WRAP_CONTENT, ScrollView.LayoutParams.WRAP_CONTENT)); linearLayout = new LinearLayout(FilmsPopulairesActivity.this); linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); linearLayout.setOrientation(LinearLayout.VERTICAL); scrollView.addView(linearLayout); } public void addMovie(String name) { RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL); TextView nameTextView = new TextView(FilmsPopulairesActivity.this); nameTextView.setLayoutParams(layoutParams); nameTextView.setText(name); linearLayout.addView(nameTextView); linearLayout.invalidate(); scrollView.invalidate(); } @Override public View createTabContent(String tag) { // Appelée lors de "tabAnnee.setContent(tabAnneeContent);" return scrollView; } } |
Quand je clique sur mon bouton, ça effectue une recherche puis la fonction "rechercheTerminee" est appelée.
J'appel ensuite la fonction "setContent" de mon TabSped "tabAnnee" pour changer son contenu, mais cela ne fonctionne pas. Son contenu n'est pas changé.
Je pense qu'il faut rafraîchir tout ça, mais j'ai beau essayer à coup de "invalidate()", pas moyen…
Pouvez-vous m'aider ?
Merci !