ListView bestimmtes Item BackgroundColor ändern

  • Antworten:5
stan yng
  • Forum-Beiträge: 31

29.03.2013, 12:55:52 via Website

Hallo Leute,

ich möchte an einer bestimmten Position die Hintergrundfarbe eines Items vom TreeView ändern.

Klar wenn ich drauf drücke und onItemClick Event schieße hab ich ParentView und die Position

1public void onItemClick(AdapterView<?> parentView, View view, int position,
2 long id) {
3
4 parentView.getChildAt(position).setBackgroundColor(Color.RED);

aber möchte ohne das ich drauf klicke die Farbe an einem bestimmten Item ändern

1ListView listView = (ListView)findViewById(R.id.listView1);
2int position = 1;
3listView.getChildAt(position).setBackgroundColor(Color.RED)

funktioniert leider nicht

könnt ihr mir da weiter helfen?

Gruß
Stan

#################
Edit:
hab vergessen die Exception zu schreiben:
java.lang.NullPointerException

— geändert am 29.03.2013, 14:05:10

Antworten
Appsoluts
  • Forum-Beiträge: 304

29.03.2013, 14:28:54 via Website

Klar funktioniert.
Du musst dir ein eigenes ListView Objekt bauen.
Du kannst dann beim Erstellen des Objektes den Background des Objektes ändern.

http://developer.android.com/guide/topics/ui/declaring-layout.html#AdapterViews

Hier ist ne Anleitung.
ArrayAdapter adapter = new ArrayAdapter<String>(this,
HIER_KOMMT_DEIN_OBJEKT_HIN, myStringArray);

Antworten
Appsoluts
  • Forum-Beiträge: 304

29.03.2013, 14:31:21 via Website

Das Problem mit Position ist, dass es sich bei der Position nur um eine gepufferte Position handelt !
Hast du z.b. eine ListView mit 200 Objekten und drückst auf position 5 und scrollst wird ein anderes Objekt nr 5 einnehmen

Antworten
stan yng
  • Forum-Beiträge: 31

29.03.2013, 14:50:28 via Website

danke das mit dem Objekt müsste funktionieren.

Danke für den Hinweis mit der Position, hab ich gar nicht bedacht.

aber das ListView Objekt hat ja Items und diese Items ein Index.

Über den Index müsste man ja das richtige ListView Item färben können oder irr ich mich da?

Antworten
Appsoluts
  • Forum-Beiträge: 304

29.03.2013, 15:39:24 via Website

ich würde beim laden der Daten für den Adapter jedem Object eine eindeutige ID mitgeben und darüber arbeiten.

Antworten
B S.
  • Forum-Beiträge: 16

29.03.2013, 17:16:38 via App

http://android.amberfog.com/?p=296

im zweiten teil der Anleitung geht es.darum jeden 5 einteag mit einer eigenen view darzustellen. hier könntest du eingreifen und deine color ändern. dafür musst du aber auch wie bereits angesprochen eine eigene view erstllen und einen eigenen Adapter.

Gruß

Antworten