Как установить текст в центре в приложении ListView для Android? - PullRequest
6 голосов
/ 19 января 2012

Я реализовал приложение на ListView в моем приложении, я использовал метод getListView (). Я написал код следующим образом:

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

когда я пишу приведенный выше код в методе onCreate, я могу показать список с некоторыми текстами. из приведенного выше кода я хотел бы отобразить текст в центре списка, а также отобразить текст в цвете.

Ответы [ 3 ]

27 голосов
/ 19 января 2012

вы используете встроенный макет, который

android.R.layout.simple_list_item_1

этот макет не может быть изменен.Однако вы можете предоставить свой собственный макет строки.

ваша строка должна выглядеть следующим образом:

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

помните, что идентификатор должен быть только android:id="@android:id/text1"

, и теперь выможет передать это конструктору вашего ArrayAdapter:

ArrayAdapter<String>(this,R.layout.my_custom_layout,conversionsadd);
6 голосов
/ 19 января 2012

Я не пробовал, но думаю, переопределяя getView в методе адаптера, и делаю следующее:

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);
1 голос
/ 19 января 2012

Вы должны дать код функции getView ArrayAdapter или XML R.layout.simple_list_item_1, в которой обычно устанавливается стиль элемента списка

...