2016-03-08 5 views
0

В моем приложении я создал один Listview. Когда я нажимаю на строку, я хочу изменить цвет строки списка в качестве цвета Lightgray и textcolor как синий цвет.Как изменить цвет и цвет текста списка в android

Для этого я пробовал код ниже, но только цвет фона строки меняет цвет текста.

mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

       for (int j = 0; j < parent.getChildCount(); j++) { 

        parent.getChildAt(j).setBackgroundColor(Color.TRANSPARENT); 
        view.setBackgroundColor(Color.LTGRAY); 

        rowText = (TextView) findViewById(R.id.rowitem); 
        rowText.setTextColor(Color.BLUE); 
       } 


    } 
    }); 
} 

ответ

0

Сначала создайте селектор рисуем так:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@android:color/red" 
      android:state_pressed="true" /> 
    <item android:drawable="@android:color/white" /> 
</selector> 

Тогда

StateListDrawable selector = new StateListDrawable(); 
selector.addState(new int[] { android.R.attr.state_pressed }, getResources().getDrawable(R.color.red)); 
selector.addState(new int[] {}, getResources().getDrawable(R.color.white)); 
view.setBackgroundDrawable(selector); 

Изменение

rowText = (TextView) findViewById(R.id.rowitem); 

до

rowText = (TextView)view.findViewById(R.id.rowitem); 

так как вы должны найти текст в завышенном виде, а не самостоятельно.

+0

, когда я нажимаю на самом деле, пусть первый ряд, то первый фон строки и TextColor должны измениться, и когда я постучал по второму ряду, то второй фон строки и TextColor должны изменить и первый фон строки и TextColor должны прийти предыдущие цвета – AbhiRam

+0

Ok , затем обновите свой вопрос тем, что вы только что сказали мне, и тем временем я обновляю ответ –

+0

ok, пожалуйста, обновите – AbhiRam

0

первого включения андроида: атрибут ListSelector в вашей ListView

ListView android:id="@+id/android:list" android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/Tablayoutdesign" 
    android:cacheColorHint="#000000" 
    android:dividerHeight="1dip" 
    android:layout_marginTop="63dip" 
    android:layout_marginBottom="40dip" 

    /> 

благодарственное создать селектор (listselector.xml)

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- Selected --> 
    <item 
    android:state_focused="true" 
    android:state_selected="false" 
    android:drawable="@drawable/focused"/> 

    <!-- Pressed --> 
    <item 
    android:state_selected="true" 
    android:state_focused="false" 
    android:drawable="@drawable/selected" /> 

</selector> 

чем пойти на colors.xml

<resources> 
<drawable name="focused">#ff5500</drawable> 
<drawable name="selected">#FF00FF</drawable> 
</resources> 

и с некоторой магией Java: listview.setSelector (R.drawable.listselector)

Благодаря @ Sankar-anesh

0

Список государственный прессованная

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="#4285f4" /> 
      <corners android:radius="2dp" /> 
     </shape> 
    </item> 

    <item 
     android:bottom="2dp" 
     android:left="0dp" 
     android:right="0dp" 
     android:top="0dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#4285f4" /> 
      <corners android:radius="2dp" /> 
     </shape> 
    </item> 
</layer-list> 

Список просмотра фона при нажатии не

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="#FFF" /> 
      <corners android:radius="2dp" /> 
     </shape> 
    </item> 

    <item 
     android:bottom="2dp" 
     android:left="0dp" 
     android:right="0dp" 
     android:top="0dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#FFF" /> 
      <corners android:radius="2dp" /> 
     </shape> 
    </item> 
</layer-list> 

Просмотр списка выбора

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/card_state_pressed" android:state_pressed="true" /> 
    <item android:drawable="@drawable/card_background" /> 
</selector> 
Смежные вопросы