2015-04-20 4 views
-1

Я заполняю ListView из файла. ListvVew содержит флажки. Теперь я хочу, чтобы изменил цвет и шрифт текста отдельных элементов на флажке, нажмите. Вместо этого я могу выделить только отдельные строки элементов (синим цветом). Что мне не хватает?Изменить цвет текста отмеченного элемента в Listview

main.xml

<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#F3E2A9"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="390dp" 
     android:id="@+id/linearLayoutlist" 
     android:orientation="vertical" 
     > 

    <ListView 
     android:id="@android:id/list" 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" 
     android:choiceMode="multipleChoice" 

     android:drawSelectorOnTop="false" 
     android:listSelector="@drawable/listviewcolor" 

     > 
    </ListView> 
    </LinearLayout> 
    </RelativeLayout> 

listviewcolor.xml

<!-- Selected --> 
<item 
    android:state_focused="true" 
    android:state_pressed="false" 
    android:drawable="@color/red" /> 

<!-- Pressed --> 
<item 
    android:state_pressed="true" 
    android:drawable="@color/blue" /> 

    <!-- Default --> 
    <item android:drawable="@color/lightyellow" /> 

color.xml

<color name="blue">#ff3a8dcb</color>  
<color name="red">#FF0000</color> 
<color name="lightyellow">#F3E2A9</color> 

main_activity

List arrlist=new ArrayList(); 
    ArrayAdapter<String> adapter2; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    listView = getListView(); 
    listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE); 
    listView.setTextFilterEnabled(true); 

    adapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, android.R.id.text1, arrlist); //arrlist is an ArrayList 
                                 //whose value is taken from a file 
    listView.setAdapter(adapter2); 
     listView.setOnTouchListener(touchListener); 
     listView.setOnScrollListener(touchListener.makeScrollListener()); 
    } 
+0

Где ваш код ???? –

ответ

2

Вы можете изменить TextColor и TextFont Размер программно на CheckboxonCheckedChangeListener()

tx.setTextSize(TypedValue.COMPLEX_UNIT_SP,30); 
tx.setTextColor(Color.WHITE); 
+0

Я не использую 'checkboxes'. Посмотрите мой макет. 'android: choiceMode =" multipleChoice "' делает элемент проверяемым в 'listview' – Ted

1

Пожалуйста, покажите свой список пункт раскладку где вы добавили флажок и вид текста и в вашем цвете адаптер текста изменений и шрифт динамически установлен на флажке onCheckedChangeListener() следующим образом:

final Typeface tvFont = Typeface.createFromAsset(assetManager, "OPTIMA.TTF"); 
    tv.setTypeface(tvFont); 
    tv.setTextColor(Color.BLACK); 
+0

Не было добавлено' checkboxes' и 'textview'. «Список» на 'android: choiceMode =" multipleChoice "' делает флажки. Макет 'listview' уже указан – Ted

+0

, пожалуйста, покажите код вашего адаптера –

+0

Добавлен код. – Ted

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