Bonjour,

J'ai deux listview à la suite, je voudrais afficher la 2eme listview selon le choix fait dans la 1ere listview.
Mais ma 2eme listview ne s'affiche pas , car le choix n'a pas encore été fait à l'affichage de la vue.

J'ai tenté quelque petite chose comme créer une fonction mais je dois la mettre en statique et je me retrouve à ne plus avoir accès à certaines variables.
J'ai également essayer de mettre çà dans la fonction onclick de la 1ere listview mais sans succès non plus.

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
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
package studio.com.warnan.Recherche;
 
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
 
import java.util.Calendar;
 
import studio.com.warnan.R;
 
public class RechercheActivity extends AppCompatActivity {
 
    private TextView tvDisplayDate;
    private Button btnChangeDate;
 
    private int year;
    private int month;
    private int day;
 
    static final int DATE_DIALOG_ID = 999;
 
    // Variables type animal
    private String itemTypeSelected="";
    private ListView listView_liste_type_animal;
 
    private final String[] type = new String[]{
            "Chien", "Chat", "Oiseau", "Vache", "Cheval", "Autre"};
 
    // Variables race animal
    private String itemRaceSelected="";
    private ListView listView_liste_race_animal;
 
    String[] race_chien = new String[]{
            "Labrador", "Berger allemand", "Caniche", "Chitssu", "Bull Terrier"};
 
    String[] race_chat = new String[]{
            "Angorra", "Chat des rue", "Chat noir", "Chat de goutiere", "Chat new", "Autre chat"};
 
    String[] race_oiseau = new String[]{
            "Pigeon", "Corbeau", "Hirondelle", "Tourterelle", "Moineau", "Pie"};
 
    String[] race_vache = new String[]{
            "Bordelaise", "Cularde", "Bretonne", "Hollandaise", "Merangere", "Setangere"};
 
    String[] race_cheval = new String[]{
            "De traie", "De course", "Pur sang", "Etalon", "Percheron", "Islandais"};
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recherche);
 
        // Pour la data
        setCurrentDateOnView();
        addListenerOnButton();
 
        // On recupère un pointeur de la liste des animaux
        listView_liste_type_animal = (ListView) findViewById(R.id.listView_recherche_type);
        // On assigne un titre à cette liste
        TextView textView_labellisttype= new TextView(RechercheActivity.this);
        textView_labellisttype.setText("CHOISISSEZ UN ANIMAL :\n");
        listView_liste_type_animal.addHeaderView(textView_labellisttype);
        // On populate la liste
        ArrayAdapter<String> adapter_types = new ArrayAdapter<String>(RechercheActivity.this, android.R.layout.simple_list_item_1, type);
        listView_liste_type_animal.setAdapter(adapter_types);
 
        // ListView on item selected listener.
        listView_liste_type_animal.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                itemTypeSelected = type[position - 1];
                Toast toast = Toast.makeText(getApplicationContext(), itemTypeSelected, Toast.LENGTH_SHORT);
                toast.show();
 
                // On populate la liste de race
 
            }
        });
 
 
        // Pour les races
 
        //Pour la listview des race
        listView_liste_race_animal = (ListView) findViewById(R.id.listView_recherche_race);
        // On assigne un titre à cette liste
        TextView textView_labellistrace = new TextView(RechercheActivity.this);
        textView_labellistrace.setText("CHOISISSEZ UNE RACE");
        listView_liste_race_animal.addHeaderView(textView_labellistrace);
 
        if (itemTypeSelected == "Chien") {
// On populate la liste
            ArrayAdapter<String> adapter_race_chien = new ArrayAdapter<String>(RechercheActivity.this, android.R.layout.simple_list_item_1, race_chien);
            listView_liste_race_animal.setAdapter(adapter_race_chien);
        }
 
        else if (itemTypeSelected == "Chat") {
// On populate la liste
            ArrayAdapter<String> adapter_race_chat = new ArrayAdapter<String>(RechercheActivity.this, android.R.layout.simple_list_item_1, race_chat);
            listView_liste_race_animal.setAdapter(adapter_race_chat);
        }
 
        else if (itemTypeSelected== "Oiseau") {
// On populate la liste
            ArrayAdapter<String> adapter_race_oiseau = new ArrayAdapter<String>(RechercheActivity.this, android.R.layout.simple_list_item_1, race_oiseau);
            listView_liste_race_animal.setAdapter(adapter_race_oiseau);
        }
 
        else if (itemTypeSelected== "Vache") {
// On populate la liste
            ArrayAdapter<String> adapter_race_vache = new ArrayAdapter<String>(RechercheActivity.this, android.R.layout.simple_list_item_1, race_vache);
            listView_liste_race_animal.setAdapter(adapter_race_vache);
        }
 
        else if (itemTypeSelected== "Cheval") {
// On populate la liste
            ArrayAdapter<String> adapter_race_cheval = new ArrayAdapter<String>(RechercheActivity.this, android.R.layout.simple_list_item_1, race_cheval);
            listView_liste_race_animal.setAdapter(adapter_race_cheval);
        }
 
        else {
            Toast toast = Toast.makeText(getApplicationContext(), itemTypeSelected+"Aucune valeur encore affectée", Toast.LENGTH_SHORT);
            toast.show();
        }
 
        /* ListView on item selected listener.
        listView_liste_race_animal.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (itemTypeSelected) {
                    case "Chien":
                        itemRaceSelected = race_chien[position];
                        break;
                    case "Chat":
                        itemRaceSelected = race_chat[position];
                        break;
                    case "Oiseau":
                        itemRaceSelected = race_oiseau[position];
                        break;
                    case "Vache":
                        itemRaceSelected = race_vache[position];
                        break;
                    case "Cheval":
                        itemRaceSelected = race_cheval[position];
                        break;
                    default:
                        System.out.print("Choississez une race");
                }
 
            }
        });
        */
        }
 
    // Fonctions&Méthodes pour la date
 
        public void setCurrentDateOnView() {
 
            tvDisplayDate = (TextView) findViewById(R.id.textView_date);
 
            final Calendar c = Calendar.getInstance();
            year = c.get(Calendar.YEAR);
            month = c.get(Calendar.MONTH);
            day = c.get(Calendar.DAY_OF_MONTH);
 
            // set current date into textview
            tvDisplayDate.setText(new StringBuilder()
                    // Month is 0 based, just add 1
                    .append(checkFormat(day)).append("-").append(checkFormat(month + 1)).append("-")
                    .append(year).append(" "));
 
        }
        public void addListenerOnButton() {
 
            btnChangeDate = (Button) findViewById(R.id.button_change_date);
 
            btnChangeDate.setOnClickListener(new View.OnClickListener() {
 
                @Override
                public void onClick(View v) {
 
                    showDialog(DATE_DIALOG_ID);
 
                }
 
            });
 
        }
        @Override
        protected Dialog onCreateDialog(int id) {
            switch (id) {
                case DATE_DIALOG_ID:
                    // set date picker as current date
                    return new DatePickerDialog(this, datePickerListener,
                            year, month,day);
            }
            return null;
        }
        private DatePickerDialog.OnDateSetListener datePickerListener
                = new DatePickerDialog.OnDateSetListener() {
 
            // when dialog box is closed, below method will be called.
            public void onDateSet(DatePicker view, int selectedYear,
                                  int selectedMonth, int selectedDay) {
                year = selectedYear;
                month = selectedMonth;
                day = selectedDay;
 
                // set selected date into textview
                tvDisplayDate.setText(new StringBuilder().append(checkFormat(day))
                        .append("-").append(checkFormat(month + 1)).append("-").append(year)
                        .append(" "));
 
            }
        };
        // Méthode permettant de rajouter un 0 devant le moi de l'année s'il est < 10
        private String checkFormat(int mois) {
            if (mois<10) {
                return ("0"+mois);
            }
            else {
                return Integer.toString(mois);
            }
        }
    // Fin fonctions&Méthodes pour la date
}
merci de vous être penché sur mon problème