Как изменить цвет текста в listView - PullRequest
0 голосов
/ 24 июня 2011

На самом деле я хочу изменить цвет текста списка, который я создал для своего приложения. Фактически, когда я изменяю цвет фона списка, на белый, текст, присутствующий в списке, не отображается, так как цвет текста также белый. .so есть ли способ изменить цвет текста представления списка на черный, чтобы он был виден в списке просмотра. Я отправляю свой код, пожалуйста, проверьте его.

XML-код:

  <LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"

xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout android:layout_height="match_parent" android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:orientation="vertical">
    <LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout2" android:layout_width="match_parent">
    <TextView android:text="All Contacts" 
        android:id="@+id/textView1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:background="#808080"
        android:textColor="#000000">
        </TextView>
    </LinearLayout>
 <LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout2" android:layout_width="match_parent"> 
   <ListView android:id="@+id/ListView01"

android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

Java-код:

private ListView lv1;
    private String lv_arr[]={"Android","iPhone","BlackBerry","AndroidPeople","Android","iPhone"};
    @Override
    public void onCreate(Bundle icicle)
    {
        super.onCreate(icicle);
        setContentView(R.layout.contact_activity);
        lv1=(ListView)findViewById(R.id.ListView01);    
        lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));

        lv1.setOnItemClickListener(new OnItemClickListener() 
        {

            public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
            {

                      String selecteditem = lv_arr[position];
                      Intent myIntent = new Intent(view.getContext(), ContactInfo.class);
                      myIntent.putExtra("item", selecteditem);
                      startActivity(myIntent);
            }
        });
    }       

Ответы [ 5 ]

3 голосов
/ 24 июня 2011

Чтобы изменить цвет / высоту / ширину или любой внешний вид элемента списка, вы должны определить свой собственный список с помощью специального адаптера.

Сначала определите файл строки списка элементов для своего списка, в котором необходимоTextview с нужным цветом, а затем передайте этот файл строки в пользовательский адаптер.

Вот мой пример: tinyurl.com / buq5wdx , просмотрите этот пример и выполните настройку каксогласно вашему требованию.

Обновление:

Я полностью согласен с ответом Прагны, но если вы все еще хотите иметь просмотр списка с чем-то вроде 2 текстовых просмотров с 1 просмотром изображений, 1 просмотром изображений и 1 просмотром текста или любым другимуправление, вы должны настроить просмотр списка, определив пользовательский адаптер.

2 голосов
/ 24 июня 2011

listplaceholder.xml, имеющий представление списка и текстовое представление

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/white" >
   <ListView
        android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:drawSelectorOnTop="false"
        android:dividerHeight="0.0px"
        android:background="@android:color/white" />
    <TextView
        android:id="@id/android:empty"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Loading"
        android:focusable="false"
        android:clickable="true"
        android:background="@android:color/white" />
</LinearLayout>

, и list_item.xml, содержащий текстовое представление, -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white">
    <TextView android:id="@+id/item_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:padding="2dp" 
        android:textSize="20dp"
        android:textColor="@android:color/black"
        android:background="@android:color/white" />
    <TextView android:id="@+id/item_subtitle"
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"
        android:padding="2dp"
        android:textSize="12dp"
        android:textColor="@color/grey"
        android:background="@android:color/white" />
</LinearLayout>

в вашем xml, содержащем текстовое представление, помещенное

android:textColor="@android:color/black"
android:background="@android:color/white"

Надеюсь, это сработает

, иначе вы можете создать собственный адаптер массива и переопределить в нем метод getView .Затем вы можете изменить цвет фона, цвет шрифта, а также fontFace текста здесь.

Typeface localTypeface1 = Typeface.createFromAsset(getAssets(), "fonts/arial.ttf");

TextView tt = (TextView) v.findViewById(R.id.item_title);
tt.setText(results.get(position).get("title"));
tt.setBackgroundColor(color);
tt.setTextColor(color);
tt.setTypeface(localTypeface1);
0 голосов
/ 24 июня 2011

Проверьте это для получения дополнительной информации:

http://www.anddev.org/view-layout-resource-problems-f27/changing-listview-text-color-t14527.html

Изменение цвета текста представления списка в Android

Изменить цвет текста в ListView

Создайте макет для элементов списка и привяжите его к адаптеру списка. См. Этот сайт для примера пользовательского списка: http://p -xr.com / android-tutorial-how-to-to-parseread-xml-data-into-android-listview / . (В нижней части поста есть проект Eclipse)

0 голосов
/ 24 июня 2011

Решением для этого является настройка представления списка с использованием базового адаптера или адаптера массива.

lv1.setAdapter(Adapter Class Object). 

В классе Adapter содержится метод getView () . Этот метод создаст представление для списков списков. Так что добавьте раздутый XML-макет к этому getView () , как требуется.

0 голосов
/ 24 июня 2011

Дубликат: ставить цвет в Listview вдвоем

Вы не можете использовать android.R.layout.simple_list_item_1 , если хотите выполнить некоторые настройки.

Вы должны создать новый макет, например, my_list_row.xml :

<xml version="1.0" encoding="utf-8">
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="yourcolor" />

и установите в своей активность :

 lv1.setAdapter(new ArrayAdapter<String>(this,R.layout.my_list_item , lv_arr));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...