Ändern eines Teilers mit setDivider in einem ListActivity ohne benutzerdefinierten Listview?
-
27-09-2019 - |
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);
}
}
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);