J'ai une liste personnalisée et j'utilise un adaptateur de liste personnalisé pour afficher cette liste. Dans mon adaptateur de liste personnalisé, j'essaie de définir la couleur de chaque élément de manière dynamique en fonction d'une valeur dans l'objet. Cependant, chaque fois que j'essaie de faire cela, les éléments deviennent fanés plutôt que d'obtenir la couleur à laquelle ils étaient fixés. J'applique quelques styles au projet mais quand j'enlève leur effet ça ne marche toujours pas. Ceci est mon code pour changer la couleur de fond de chaque élément:Pourquoi ne puis-je pas définir dynamiquement l'arrière-plan de mon élément ListView personnalisé?
private class stationAdapter extends ArrayAdapter<Station>{
private ArrayList<Station> stations;
public stationAdapter(Context context, int textViewResourceId, ArrayList<Station> stations) {
super(context, textViewResourceId, stations);
this.stations = stations;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
Station temp = stations.get(position);
if (temp != null) {
TextView stationName = (TextView) v.findViewById(R.id.stationname);
TextView serviced = (TextView) v.findViewById(R.id.inservice);
try{
if(temp.getLine().equals("red")){
v.setBackgroundColor(R.color.red);
}
else{
v.setBackgroundColor(R.color.green);
}
}catch(Exception e){
Log.d(TAG, "Null pointer");
}
if (stationName != null) {
stationName.setText("Station: "+temp.getName()); }
if(serviced != null){
serviced.setText("In Service: "+ temp.getInServive());
}
}
return v;
}
}
Si quelqu'un pouvait indiquer ce que je fais mal, je voudrais vraiment l'apprécier.
Donc, utilisez ce dessin pour définir la couleur et cela va également régler mon nouveau problème de mise en évidence? Merci – Hugs
Ouais, cela va le réparer. Ce que ce sélecteur dit est: appliquez seulement la couleur rouge sur l'état par défaut (non pressé, non sélectionné, etc.), pour tout le reste, utilisez les couleurs/drawables par défaut. – dmon