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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| package rapport.presse.cim;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Cette classe est mon activité qui sera affichée à l'écran lors du lancement de l'application
* Elle permet de déclarer les différentes vues de mon fichier xml (en les liant via leur id)
* Elle gère également les cliques sur les boutons, l'affichage des vues et l'appel des méthodes permettant la récupération des données dans la bdd
* @author vangoeth
*
*/
public class MyFragment extends Fragment {
/**
* La variable url passée au constructeur permettra de joindre le web service lors de l'appel des classes concernées (asynchrones)
* La variable titre est également récupérée par le constructeur et permet de modifier le titre principale de l'activité
* La variable topTitle permet de récupérer l'id du textView et d'y placer le titre reçus par le constructeur
*/
public String url;
private String titre;
private TextView topTitle;
/**
*
* @param url
* Url utilisée pour récupérer les données depuis la bdd
* @param titre
* Titre de l'activité passé en paramètre
*/
public MyFragment(String url, String titre){
this.url = url;
this.titre = titre;
}
/**
* Ce tableau permert simplement de récupérer les données en fonction des périodes
*/
public static final String[] mTabPeriode = {"allPeriode", "daily", "weekly", "monthly", "quarterly", "annual"};
private int[] buttonId = {R.id.all, R.id.quot, R.id.hebd, R.id.mens, R.id.trim, R.id.ann};
private int[] listViewId = {R.id.ListViewAll, R.id.ListViewQuot,R.id.ListViewHebd, R.id.ListViewMens, R.id.ListViewTrim, R.id.ListViewAnn};
private int arrayAdapterId = android.R.layout.simple_list_item_1;
/**
* Les différents tableaux déclarés ci-dessous permettent de récupérer les valeurs de mes énumérations et la déclaration des différentes vues
*/
private Button[] buttonMap = new Button[buttonId.length];
private ListView[] listViewMap = new ListView[buttonId.length];
public ArrayAdapter[] arrayAdapterMap = new ArrayAdapter[buttonId.length];
public List<ArrayList<String>> mDataMap = new ArrayList<ArrayList<String>>(buttonId.length);
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v= inflater.inflate(R.layout.first, container, false);
/**===============================================
Appel des layouts des ListView et button +
Initialisation des cliques
===============================================**/
/**
* Permet de lier la variable à son layout et d'initialiser le titre
*/
topTitle = (TextView) v.findViewById(R.id.title);
topTitle.setText(titre);
/**
* Cette boucle va permettre d'une part d'initialiser, de lier les variables à leur layout et de gérer les cliques
* Lors de l'appel de la classe asynchrone, nous passons en paramètre la liste qui sera remplie aves les données,
* et l'adaptateur permettant de les afficher à l'écran.
*
*/
for (int i = 0; (i < buttonId.length); i++){
mDataMap.add(new ArrayList<String>());
arrayAdapterMap[i] = new ArrayAdapter<String>(this.getActivity(), arrayAdapterId, mDataMap.get(i));
new AsyncDownload(mDataMap.get(i), arrayAdapterMap[i]).execute(url, "periode", mTabPeriode[i]);
buttonMap[i] = (Button) v.findViewById(buttonId[i]);
listViewMap[i] = (ListView) v.findViewById(listViewId[i]);
listViewMap[i].setVisibility(View.GONE);
buttonMap[i].setOnClickListener(new MyListViewListener(listViewMap[i]));
listViewMap[i].setAdapter(arrayAdapterMap[i]);
listViewMap[i].setOnItemClickListener(new MyListViewItemListener(mDataMap.get(i), this.getActivity()));
}
if ((mDataMap.get(0)).size() == 0){
Toast.makeText(this.getActivity(), "Résultats inaccessibles, veuillez réessayer plus tard ou vérifier votre connexion internet", Toast.LENGTH_LONG).show();
}
return v;
}
} |
Partager