2012-01-19 30 views
6

Ho implementato un'applicazione sul ListView nella mia applicazione ho usato getListView() method.I hanno scritto codice come segue:Come impostare il testo al centro nell'applicazione 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); 

quando scrivo il codice di cui sopra con il metodo del onCreate posso in grado di mostrare la lista con alcuni testi dal codice precedente mi piacerebbe visualizzare il testo al centro nell'elenco e anche visualizzare il testo in un colore.

+0

Basta usare 'android: layoutGravity =" center "' al tuo listview. Ma qui stai usando listview di Android default. Prova ad usare la tua listview invece di 'android.R.layout.simple_list_item_1' – Praveenkumar

risposta

23

si utilizza incorporato nel layout, che è

android.R.layout.simple_list_item_1 

questo layout non può essere modificato. Tuttavia è possibile fornire il proprio layout di riga.

la riga dovrebbe essere simile a questo:

<?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" /> 

ricordare che l'id dovrebbe essere solo android:id="@android:id/text1"

e ora si può dare questo al costruttore del vostro ArrayAdapter:

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

Ha funzionato brillantemente, solo una cosa che ho trovato è che in Android Studio, il 'Design' non mostra queste modifiche - ma possono essere viste quando usi l'emulatore. –

1

si dovrebbe dare il codice della funzione getView di ArrayAdapter o XML di R.layout.simple_list_item_1, che normalmente è dove lo stile dell'elemento ListView è impostata

4

I didnot prova, ma penso, sovrascrivendo getView nel metodo dell'adattatore, e faccio quanto segue:

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); 
Problemi correlati