2012-01-19 17 views
6

he implementado una aplicación en ListView en mi aplicación que he utilizado getListView() method.I han código escrito de la siguiente manera:¿Cómo configurar el texto en el centro en la aplicación de Android ListView?

String[] conversionsadd = getResources().getStringArray(R.array.conversions); 
    setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,conversionsadd)); 
    getListView().setTextFilterEnabled(true); 
    getListView().setBackgroundResource(R.drawable.listback2); 

cuando escribo el código anterior en el método onCreate puedo capaz de mostrar la lista con algunos textos del código anterior, me gustaría mostrar el texto en el centro en la lista y también mostrar el texto en un color.

+0

Simplemente use 'android: layoutGravity =" center "' en su lista de lista. Pero, aquí estás usando la vista de lista predeterminada de Android. Trate de usar su propia vista de lista en lugar de 'android.R.layout.simple_list_item_1' – Praveenkumar

Respuesta

23

está utilizando una función de diseño que es

android.R.layout.simple_list_item_1 

este diseño no se puede cambiar. Sin embargo, puede proporcionar su propio diseño de fila.

su fila debe tener este aspecto:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:layout_width="fill_parent" 
    android:textSize="20sp" 
    android:paddingLeft="6dip" 
    android:paddingRight="6dip" 
    android:gravity="center" /> 

recuerda que la identificación debe ser sólo android:id="@android:id/text1"

y ahora se puede dar esto a constructor de su ArrayAdapter:

ArrayAdapter<String>(this,R.layout.my_custom_layout,conversionsadd); 
+0

Funcionó de forma brillante, solo una cosa que encontré fue que en Android Studio, el 'Diseño' no mostrará estos cambios, pero se pueden ver cuando usa el emulador –

1

deben darle el código de la función getView de ArrayAdapter o XML de R.layout.simple_list_item_1, que normalmente es donde el estilo del elemento ListView se establece

4

que nose intente, pero creo, anulando getView en el método del adaptador, y haga lo siguiente:

String[] conversionsadd = getResources().getStringArray(R.array.conversions); 
    setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,conversionsadd) 
{ 
    public View getView(AdapterView adapterView, View convertView, int position, long id) 
    { 

     View view=super.getView(adapterView, convertView, position, id); 
     TextView txt=view.findViewById(android.R.id.textView1); 
     txt.setGravity(Gravity.CENTER); 

     return view; 
    } 
}); 
    getListView().setTextFilterEnabled(true); 
    getListView().setBackgroundResource(R.drawable.listback2); 
Cuestiones relacionadas