Pregunta

Me parece que no puede conseguir un divisor personalizado, utilizando una Disponibles he definido, al trabajo cuando se utiliza un ListActivity y no se cree una ListView personalizado. Casi parece que cuando la máquina virtual crea su propia ListView para mí, con la ListActivity, que utiliza un tema con el divisor predeterminado proporcionado; y si lo intento de proporcionar una, sin divisiones aparecen en el ListView en absoluto.

Yo sé que puedo crear un ListView personalizado utilizando XML y definir androide: Divisor en ese ListView, y esto lo reconoce mi costumbre divisor Disponibles. Pero yo preferiría dejar que el ListActivity crear su propio ListView, si puedo encontrar la manera de conseguir mi propio divisor de trabajar en él.

Este es el código que estoy usando ahora:

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);
    }
}
¿Fue útil?

Solución

lo he descubierto. La cuestión no tenía nada que ver con la generación de un ListActivity ListView para mí. Fue en la forma en que estaba definiendo el divisor en código Java.

Hay dos maneras que veo para definir el divisor (frontera entre filas ListView) en un ListView que se infla automáticamente desde un ListActivity, si desea definir el color en XML:

Método 1:

En res / valores / colors.xml, poner el siguiente:

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

En la clase se extiende ListActivity-, hacer esto:

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

Método 2:

En res / valores / colors.xml:

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

Y en su clase que se extiende ListActivity:

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

Otros consejos

Para configurar el divisor en vista de lista mediante programación

Estos código de poner dentro de su .java Class

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

Creación de Drawable : {res> dibujable> 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>

Prueba este código:

searchText.setBackgroundColor(getResources().getColor(R.color.wordColorBlack));
ListView lv = getListView();
lv.setDivider(getResources().getDrawable(R.drawable.divider2));
lv.setDividerHeight(2);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top