Frage

Ich kann nicht scheinen, eine angepasste Teiler zu erhalten, eine Drawable ich verwendet haben, definiert sind, zu arbeiten, wenn eine ListActivity und nicht über eine benutzerdefinierte ListView zu schaffen. Es scheint fast wie wenn die VM eine eigene ListView für mich schaffen, mit dem ListActivity es ein Thema mit den Standard-Teiler verwendet vorgesehen ist; und wenn ich versuche, eine zu schaffen, erscheinen keine Trennwände im ListView überhaupt.

Ich weiß, dass ich eine benutzerdefinierte ListView XML erstellen können mit und definieren android: Teiler auf diesem ListView, und dies tut meinen benutzerdefinierten Teiler Drawable erkennen. Aber ich würde es vorziehen, nur die ListActivity lasse seinen eigenen ListView schaffen, wenn ich herausfinden kann, wie meine eigenen Teiler daran zu arbeiten erhalten.

Hier ist der Code ich jetzt benutze:

public class Categories extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final String[] OPTIONS = {
            "Hello",
            "Goodbye",
            "Good Morning",
            "Greetings",
            "Toodaloo"
        };

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            this, android.R.layout.simple_list_item_1, OPTIONS);
        setListAdapter(adapter);

        ListView lv = getListView();
        PaintDrawable sage = new PaintDrawable(R.drawable.sage);
        lv.setDivider(sage);
        lv.setDividerHeight(1);
    }
}
War es hilfreich?

Lösung

dachte ich es aus. Das Problem hatte nichts mit dem ListActivity Erzeugen eines Listview für mich zu tun. Es war, wie ich die Teiler in Java-Code wurde definiert wird.

Es gibt zwei Möglichkeiten, dass ich sehe, die Trennlinie (Grenze zwischen Listview-Zeilen) auf einem Listview zu definieren, die automatisch von einem ListActivity aufgeblasen wird, wenn Sie die Farbe in XML definiert werden sollen:

Methode 1:

In res / Werte / Colors.xml, setzen Sie wie folgt vor:

<resources>
 <color name="sage">#cceebb</color>
</resources>

In Ihrer ListActivity erstreckender Klasse, dies zu tun:

ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.color.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);

Methode 2:

In res / Werte / Colors.xml:

<resources>
 <drawable name="sage">#cceebb</drawable>
</resources>

Und in der Klasse, die sie ListActivity:

ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.drawable.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);

Andere Tipps

So stellen Teiler in Listview programmatisch :

setzte Dieser Code in Ihrer .java Klasse

   ListView lv = (ListView) findViewById(R.id.lv);
   lv.setDivider(getResources().getDrawable(R.drawable.drawable_divider));
   lv.setDividerHeight(1);

Erstellen Drawable : {res> ziehbar> drawable_divider.xml }

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"

    android:shape="rectangle">

    <solid android:color="#ececec"></solid>

</shape>

Versuchen Sie diesen Code ein:

searchText.setBackgroundColor(getResources().getColor(R.color.wordColorBlack));
ListView lv = getListView();
lv.setDivider(getResources().getDrawable(R.drawable.divider2));
lv.setDividerHeight(2);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top