Modification des paramètres du contenu d'une ListView dynamique
Salut !
J'ai une ListView que je remplis dynamiquement avec des valeurs que je récupères en base de données, comme ceci :
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
| public class Consultation extends ListActivity {
[...]
public void onCreate( Bundle savedInstanceState ) {
db = new BDDAcces( this );
db.open();
[...]
Cursor c = db.getListeDeChosesEtDAutres();
if ( c.moveToFirst() )
{
do {
// Remplissage d'un ArrayList
}
while ( c.moveToNext() );
}
this.adapter = new SimpleAdapter(
this,
monArrayListenQuestion,
R.layout.rowdelaliste,
new String[] { "pleindecontenu" },
new int[] { R.id.idsupercoule }
);
setListAdapter( this.adapter );
}
} |
Jusque là tout va bien, je n'ai aucun problème.
Ma liste est composée de TextView dont le code ressemble à :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="5px"
android:paddingRight="5px"
android:textColor="#7b7b7b"
android:background="#00000000">
<TextView
android:id="@+id/idsupercoule"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout> |
Comment faire, donc, pour modifier, par exemple, la couleur du texte sous condition ?
J'ai essayé vaguement de tenter des trucs comme parcourir la liste des éléments, mais je ne sais pas quoi en faire :
(code mis à la suite du setListAdapter() ci-dessus)
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
| ListViewDeChosesEtDAutres = (ListView) findViewById( android.R.id.list );
for ( int i = 0; i < ListViewDeChosesEtDAutres.getCount() ; i++ ) {
// Ici je ne sais pas quoi faire et voici les trucs que j'ai essayé et qui ne fonctionnent pas :
/*TextView tx = (TextView) ListViewDeChosesEtDAutres.findViewById( R.id.idsupercoule );*/
/* // Bon là c'est surtout que je sais pas quoi en faire de l'objet :
Object machin = ListViewDeChosesEtDAutres.getItemAtPosition(i);*/
/* Pareil pour là :
Object machin = this.adapter.getItem(i);*/
/* Maintenant admettons que j'ai réussi à récupérer le TextView de la position i
ce que je voudrais faire c'est un truc comme :
if ( tx.toString().equals( "maChaineQuiDeboite" ) ) {
tx.setTextColor( 0xff0000 );
}
mais quand j'avais essayé avec un getChildCount(), bien que ça
me retourne 0, j'avais accès au TextView mais Eclipse buggait,
il me demandait de remplacer setTextColor par setHighlightColor
et quand je le faisais, il me remettait une erreur en me disant
de remplacer par setTextColor, et ainsi de suite*/
} |
Une idée ? :D
Merci !