当selectListView项目时,更改TextView的字体颜色

每个ListView项目中都有一个TextView,通过自定义适配器进行设置。 TextView XML不在ListView XML写入的同一文件中,我希望ListView的任何项目被选中时,该特定项目的字体颜色应该改变。 我也试过这个,通过定义TextView的不同状态,即select,集中和按下,但这不能解决我的问题。 请给我build议一些解决scheme。 这里是摘录

一个XML文件中的一个监听例如。 file1.xml

<ListView android:id="@+id/listView1" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="0.5" android:clickable="true" /> 

和一个TextView在不同的XML ..即file2.xml

 <TextView android:id="@+id/rowListTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="10dp" android:paddingLeft="10dp" android:paddingTop="10dp" android:text="@string/app_name" android:textColor="@color/file3" android:textSize="10sp" android:textStyle="bold" /> 

res / color文件夹中的文本颜色属性文件即file3.xml。

 <item android:state_selected="true" android:color="@android:color/white"/> <item android:state_focused="true" android:color="@android:color/white"/> <item android:state_pressed="true" android:color="@android:color/white"/> <item android:color="@android:color/black"/> 

Solutions Collecting From Web of "当selectListView项目时,更改TextView的字体颜色"

下面的代码将帮助你。

 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView <? > adapterView, View rowView, int position, long id) { TextView textView = (TextView) rowView.findViewById(R.id.rowListTextView); textView.setTextColor("Desired Color"); } }); 

当您滚动列表时,我还没有包括像保留文字颜色的情景,而您select的项目不在焦点。 这段代码将引导你在正确的方向。

尝试使用textColor的颜色状态列表。

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#fff"/> <item android:state_activated="true" android:color="#fff"/> <item android:color="#000" /> </selector> 

Android指南没有提到state_activated属性,但它适用于我。

在select器中:

  <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_activated="true" android:color="#ff0000" /> <item android:state_active="true" android:color="#ff0000" /> <item android:state_pressed="true" android:color="#ff0000" /> <item android:state_selected="true" android:color="#ff0000" /> <item android:state_focused="true" android:color="#ff0000" /> <item android:color="#000000" /> </selector> 

在activity中: myListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { pl=position; myListView.setItemChecked(pl, true); adapter.notifyDataSetChanged(); ..... 

item.xml:

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceListItemSmall" android:gravity="center_vertical" android:textColor="@drawable/selector" android:minHeight="?android:attr/listPreferredItemHeightSmall" /> 

而我点击后,红色的检查项目。 只有一个检查项目。 请享用!