Bonjour,
J'implémente une application sous Android studio.
Je remplis une liste déroulante. Lorsque je sélectionne un item dans la liste, celui ne s'affiche pas et en plus la méthode onItemSelected n'est pas appelée.
Merci pour votre aide.
Ci après le code de mon Adapter CoureurSpinnerAdapter:
Ci après le code de mon activité TabCourse :
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 public class CoureurSpinnerAdapter extends ArrayAdapter<String> implements SpinnerAdapter { // Atributs privés private Context pContext; private int pLayoutResourceId; private int pTextViewResourceId; private ArrayList<String> pListeCoureurs; private LayoutInflater pInflater; // Constructeur public CoureurSpinnerAdapter(Context context, int resource, int textViewResourceId, ArrayList<String> listeCoureurs) { super(context, resource, textViewResourceId, listeCoureurs); this.pContext = context; this.pLayoutResourceId = resource; this.pTextViewResourceId = textViewResourceId; this.pListeCoureurs = listeCoureurs; this.pInflater = LayoutInflater.from(pContext); } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { View lView = convertView; if (lView == null) { lView = pInflater.inflate(pLayoutResourceId, parent, false); } else { } if ((pListeCoureurs != null) && (position < pListeCoureurs.size())) { TextView lTextView = (TextView) lView.findViewById(pTextViewResourceId); lTextView.setText(pListeCoureurs.get(position)); } else { } return(lView); } @Override public View getView(int position, View convertView, ViewGroup parent) { /*TextView lTextView = new TextView(this.pContext); lTextView.setText(this.pListeCoureurs.get(position)); return(lTextView);*/ View lView = convertView; if (lView == null) { lView = pInflater.inflate(pLayoutResourceId, parent, false); } else { } if ((pListeCoureurs != null) && (position < pListeCoureurs.size())) { TextView lTextView = (TextView) lView.findViewById(pTextViewResourceId); lTextView.setText(pListeCoureurs.get(position)); } else { } return(lView); } @Override public int getCount() { return(pListeCoureurs.size()); } @Override public String getItem(int position) { return (pListeCoureurs.get(position)); } @Override public long getItemId(int position) { return (position); } }
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 public class TabCourse extends Fragment { private CoureurSpinnerAdapter pCoureurSpinnerAdapter; private Button pBoutonDemarrer; private Button pBoutonArreter; private Button pBoutonPause; private Chronometer pChronometre; private Button pBoutonPasserRelai; private TextView pTextViewProchainCoureur; private Spinner pSpinnerProchainCoureur; //Overriden method onCreateView @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View lView = inflater.inflate(R.layout.tab_course, container, false); pCoureurSpinnerAdapter = new CoureurSpinnerAdapter(lView.getContext(), R.layout.spinner_coureur, R.id.textViewSpinnerCoureur, TabEquipe.pEquipe.lireListeCoureurs()); pBoutonDemarrer = (Button) lView.findViewById(R.id.ButtonDemarrer); pBoutonArreter = (Button) lView.findViewById(R.id.ButtonArreter); pBoutonPause = (Button) lView.findViewById(R.id.ButtonPause); pChronometre = (Chronometer) lView.findViewById(R.id.chronometer); pBoutonPasserRelai = (Button) lView.findViewById(R.id.buttonPasserRelai); pTextViewProchainCoureur = (TextView) lView.findViewById(R.id.textViewProchainCoureur); pSpinnerProchainCoureur = (Spinner) lView.findViewById(R.id.spinnerProchainCoureur); pBoutonDemarrer.setEnabled(false); pBoutonArreter.setEnabled(false); pBoutonPause.setEnabled(false); pBoutonPasserRelai.setEnabled(false); pBoutonDemarrer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { pBoutonDemarrer.setEnabled(false); pBoutonArreter.setEnabled(true); pBoutonPause.setEnabled(true); pBoutonPasserRelai.setEnabled(true); pChronometre.start(); } }); pBoutonArreter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { pBoutonDemarrer.setEnabled(true); pBoutonArreter.setClickable(false); pBoutonPause.setEnabled(false); pBoutonPasserRelai.setEnabled(false); pChronometre.stop(); } }); pBoutonPause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { pBoutonDemarrer.setEnabled(false); pBoutonArreter.setEnabled(false); pBoutonPause.setEnabled(true); pBoutonPasserRelai.setEnabled(false); pChronometre.stop(); } }); pBoutonPasserRelai.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { pBoutonDemarrer.setEnabled(false); pBoutonArreter.setEnabled(false); pBoutonPause.setEnabled(true); pBoutonPasserRelai.setEnabled(false); } }); pCoureurSpinnerAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item); pSpinnerProchainCoureur.setAdapter(pCoureurSpinnerAdapter); pSpinnerProchainCoureur.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //pSpinnerProchainCoureur.setSelection(position); pTextViewProchainCoureur.setText(parent.getItemAtPosition(position).toString()); pBoutonDemarrer.setClickable(true); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); //Returning the layout file after inflating //Change R.layout.tab_course in you classes return(lView); } }
Partager