[英]Change the font color of TextView when ListView Item gets selected
我通過自定義適配器設置的每個ListView項目中都有一個TextView。 TextView XML不在寫入ListView XML的同一文件中,我希望當選擇任何ListView項時,該特定項的字體顏色應該更改。 我也通過定義TextView的不同狀態來嘗試這一點,即選擇,聚焦和按下,但這不能解決我的問題。 請為我推薦一些解決方案。 這是片段..
一個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"/>
嘗試使用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
屬性,但它適用於我。
在選擇器中:
<?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>
在活動中: 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"
/>
點擊它們后,我檢查的項目為紅色。 只有一個檢查項目。 請享用!
以下代碼段將為您提供幫助。
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");
}
});
當您滾動列表並且所選項目失焦時,我沒有包括保留文本顏色等場景。 此片段將指導您正確的方向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.