Problème enum et tableau (accès aux variables)
Bonjour, précédemment on m'a conseillé d'utiliser les énumérations pour mes déclaration de variables.
Le seul soucis est que comme à chaque solution cela pose un problème un peu plus loin.
J'ai mes 2 énumérations:
Code:
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
| enum ButtonId{
mButtonAll(R.id.all),
mButtonQuot(R.id.quot),
mButtonHebd(R.id.hebd),
mButtonMens(R.id.mens),
mButtontrim(R.id.trim),
mButtonAnn(R.id.ann);
private int resId;
private ButtonId(int r){
this.resId = r;
}
public int getResId(){
return this.resId;
}
}
enum ListViewId{
mListViewAll(R.id.ListViewAll),
mListViewQuot(R.id.ListViewQuot),
mListViewHebd(R.id.ListViewHebd),
mListViewMens(R.id.ListViewMens),
mListViewTrim(R.id.ListViewTrim),
mListViewAnn(R.id.ListViewAnn);
private int resId;
private ListViewId(int r){
this.resId = r;
}
public int getResId(){
return this.resId;
}
} |
Et ensuite j'ai leur utilisation:
Code:
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
| ListViewId[] listViewId = ListViewId.values();
final ListView[] listViewMap = new ListView[listViewId.length];
for (int i = 0; (i < listViewId.length); ++i){
listViewMap[i] = (ListView) v.findViewById(listViewId[i].getResId());
listViewMap[i].setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataAll.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
}
ButtonId[] buttonId = ButtonId.values();
Button[] buttonMap = new Button[buttonId.length];
for (int i = 0; (i < buttonId.length); ++i){
buttonMap[i] = (Button) v.findViewById(buttonId[i].getResId());
buttonMap[i].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(listViewMap[i].isShown()){
listViewMap[i].setVisibility(View.GONE);
}
else{
listViewMap[i].setVisibility(View.VISIBLE);
}
}
});
} |
Le problème c'est déjà pour la partie pour rendre la liste visible ou non il aime pas trop la syntaxe avec le tableau listViewMap[i]:
Code:
1 2 3 4 5 6 7 8 9
| public void onClick(View v) {
// TODO Auto-generated method stub
if(listViewMap[i].isShown()){
listViewMap[i].setVisibility(View.GONE);
}
else{
listViewMap[i].setVisibility(View.VISIBLE);
}
} |
Et par la suite j'ai mes variable mDataAll qui sont des arrayList donc je ne vois pas comment rendre l'initialisation dynamique pour ensuite l'utiliser sans cette partie:
Code:
1 2 3 4 5 6 7 8 9
| public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataAll.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}}); |
Voilà en espérant que vous pourrez m'aider ^^