2011-02-11 2 views
0

У меня есть CustomListView, т.е. содержать фоновое изображение и TextView,ListView и его цвет текста

Когда элемент выбран, мне нужно, чтобы изменить фоновое изображение и цвет шрифта, в настоящее время я могу изменить цвет фона выбранной строки listview с помощью xml, но я не могу изменить цвет текста.

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

я использую следующий макет для моего customlistview

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="29dp" 
    android:id="@+id/appcategoryLinearLayout" 
    android:background="@drawable/appcategorybg1" 
    android:gravity="left|center_vertical" 
    > 
     <TextView 
     android:gravity="left|center_vertical" 
     android:text="fdsfsdfsdfdsfdsfdsf" 
     android:paddingLeft="8dp" 
     android:textSize="8dp" 
     android:textColor="@color/black" 
     android:id="@+id/appCategoryNameTextView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 
+0

можете вы опубликовать макеты XML? –

+0

У меня есть цвет для текста xml, и я устанавливаю его как textcolor, теперь он отлично работает – Bytecode

+0

вместо изменения в xml сделать это программно, что будет проще ... там все, что вам нужно сделать в onClickListener, просто измените цвет текста с помощью txt. SetColor (INT); метод – silverFoxA

ответ

0

Единственный способ, чтобы написать свой собственный ListAdapter и писать пользовательские элементы управления, которые будут иметь визуальные свойства, которые вы определяете.

0

Я не уверен, если это поможет вам, но вы можете сделать некоторые вещи, как это

переменных Использование TextView как глобальное

TextView t ; 


lv.setOnItemClickListener(new OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
     { 
       if(t != null) 
       { 
        //reset the color to black 
       } 
       LinearLayout lay = (LinearLayout)v; 
       t = lay.getChildAt(0); 
       //now set text to bold 
     } 
    }; 
+0

@Sarabh ваша идея работает, но проблема в том, что я не могу сбросить белый цвет до черного, когда шрифт станет белым, он всегда будет таким, чтобы сбросить другой текст на черный, когда вы выбираете новую строку. – Bytecode

+0

Я отредактировал код, который может работать – ingsaurabh

Смежные вопросы