Problème d'affichage avec un spinner
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:
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 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);
}
} |
Ci après le code de mon activité TabCourse :
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 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);
}
} |