Question

Je ne peux pas sembler obtenir un diviseur personnalisé, en utilisant un Drawable j'ai défini, au travail lors de l'utilisation d'un ListActivity et non la création d'un ListView personnalisé. Il semble presque comme quand la machine virtuelle crée sa propre ListView pour moi, avec le ListActivity, il utilise un thème avec le diviseur par défaut fourni; et si je tente de fournir un, pas de séparations apparaissent dans le ListView du tout.

Je sais que je peux créer un ListView personnalisé en utilisant XML et définir android: diviseur sur ce ListView, et cela ne reconnaît mon diviseur personnalisé Drawable. Mais je préférerais laisser le ListActivity créer son propre ListView, si je peux comprendre comment obtenir mon propre travail diviseur sur elle.

Voici le code que je utilise maintenant:

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);
    }
}
Était-ce utile?

La solution

Je compris. La question n'a rien à voir avec le ListActivity générer un ListView pour moi. Il était dans la façon dont je le diviseur dans la définition du code Java.

Il y a deux façons que je vois de définir le diviseur (frontière entre les lignes ListView) sur un ListView qui est gonflé automatiquement à partir d'un ListActivity, si vous voulez définir la couleur en XML:

Méthode 1:

res / valeurs / Colors.xml, mettez les éléments suivants:

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

Dans votre classe ListActivity-extension, procédez comme suit:

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

Méthode 2:

res / valeurs / Colors.xml:

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

Et dans votre classe qui étend ListActivity:

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

Autres conseils

Pour diviseur situé dans listview programatically :

Ces codes mis à l'intérieur de votre .java Classe

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

Création Drawable : {res> drawable> 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>

Essayez ce code:

searchText.setBackgroundColor(getResources().getColor(R.color.wordColorBlack));
ListView lv = getListView();
lv.setDivider(getResources().getDrawable(R.drawable.divider2));
lv.setDividerHeight(2);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top