Android: accéder à TextView à l'intérieur de l'enfant de ExtenableListViewActivity
-
02-11-2019 - |
Question
J'utilise un extension par expandableListViewActivity.
Maintenant, je voudrais modifier la couleur du texte d'un certain TextView à l'intérieur de chaque enfant. Je ne veux pas qu'ils soient tous les mêmes, plutôt quelque chose comme "OK" en vert et "erreur" en rouge, etc.
J'ai trébuché sur getExpandableListAdapter (). GetChildView (...), mais je ne sais pas ce que les derniers paramètres (voir ConvertView, ViewGroup Parent) sont censés être. De plus, je ne sais pas trop si j'ai besoin de lancer la valeur de retour (vue) en quelque chose?
TextView tv = (TextView)this.getExpandableListAdapter().getChildView(0, 0, false, ???, ???).findViewById(R.id.xlist_child_tv);
Cordialement, méduses
Résumé de la solution
SimpleExpandableListAdapter expListAdapter = new SimpleExpandableListAdapter(...parameters...){
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
{
final View itemRenderer = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
final TextView tv = (TextView) itemRenderer.findViewById(R.id.kd_child_value);
if (tv.getText().toString().contentEquals(getString(R.string.true)))
{
tv.setTextColor(getResources().getColor(R.color.myred));
}
else if (tv.getText().toString().contentEquals(getString(R.string.false)))
{
tv.setTextColor(getResources().getColor(R.color.mygreen));
}
else
{
tv.setTextColor(getResources().getColor(R.color.white));
}
return itemRenderer;
}
};
Ressource couleur:
<resources>
<color name="white">#ffffffff</color>
<color name="myred">#FFFF3523</color>
<color name="mygreen">#FFA2CD5A</color>
</resources>
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow