Bonjour,
mon problème du jour est pourtant Ô combien simple, et je m'arrache les cheveux depuis hier après midi.
Dans mon application, l'actionbar a un element qui affiche une Alertdialogue.
j'aimerais afficher une liste d'éléments texte provenant d'un ArrayList<String>.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AlertDialog.Builder buildersemaine = new AlertDialog.Builder(this); buildersemaine.setTitle("Selectionnez une semaine : ");
Vous vous en doutez peut etre, les éléments contenus dans cette liste varient.
En fait cette liste contient 52 chaines de caractères du type "Semaine 1 du 3 janvier au 9 janv", "Semaine 2 du 7 janvier au 13 janvier"
ce que je désire, c'est que lorsque l'utilisateur clique sur un élement, c'est récupérer le numéro de la semaine (normalement la position dans l'arrlist de l'élément +1 (car la liste débute à 0 bien sûr)
Je suis depuis hier midi en train de me casser la tête sur ce "soucis" pourtant si simple en html ^^.
Je me suis inspiré de : http://www.developpez.net/forums/d10...-alertedialog/
Cependant le script plante au moment ou je tente d'affecter une valeur textuelle.
j'ai créé un objet héritant de BaseAdapter.
la méthode getView est ré écrite ainsi :
à partir du moment où je tente d'affecter une valeur au label, plantage. (texte du genre "coucou" ou la chaine venant de de mon arraylist events.)
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 @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LinearLayout monlayout = new LinearLayout(context); Myholder myholder; if(convertView == null){ LayoutInflater inflater = context.getLayoutInflater(); monlayout = (LinearLayout) inflater.inflate(R.layout.modellistevent, null); myholder = new Myholder(events.get(position)); monlayout.setTag(myholder); myholder.label = (TextView) monlayout.findViewById(R.id.labelliste); } else{ monlayout = (LinearLayout)convertView; myholder = (Myholder) monlayout.getTag(); Toast.makeText(this.context, "non null", Toast.LENGTH_SHORT).show(); } myholder.label.setText("chose"); return monlayout; }
ha j'allais oublier :
Cela correspond à modellisteevent.xml
Sincèrement, je trouve cette façon de faire bien compliquée ^^".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android="@+id/labelliste" android:layout_width="match_parent" android:layout_height="35dp" android:text="bidule" /> </LinearLayout>
me suis-je trompée de voie ?
bref pour ré-expliquer "simplement" : je cherche à faire exactement la même chose qu'avec un CharSequence[] car je pourrais récupérer au clic sur un élément : DialogInterface dialog, int elm, et grâce à elm, connaitre le numéro de semaine. Mais comme mes chaines de caractères vont varier (on change toute la liste), je suis obligé d'utiliser un Arraylist.
merci à toute aide que vous pourrez me fournir.
Partager