Nit*_*ija 8 android android-listview
我通过自定义适配器设置的每个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" />
Run Code Online (Sandbox Code Playgroud)
和一个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" />
Run Code Online (Sandbox Code Playgroud)
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"/>
Run Code Online (Sandbox Code Playgroud)
tee*_*pap 22
尝试使用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>
Run Code Online (Sandbox Code Playgroud)
Android指南没有提及state_activated属性,但它适用于我.
Mas*_*ter 14
在选择器中:
<?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>
Run Code Online (Sandbox Code Playgroud)
在活动中: 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();
.....
Run Code Online (Sandbox Code Playgroud)
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"
/>
Run Code Online (Sandbox Code Playgroud)
点击它们后,我检查的项目为红色.只有一个检查项目.请享用!
以下代码段将为您提供帮助.
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");
}
});
Run Code Online (Sandbox Code Playgroud)
当您滚动列表并且所选项目失焦时,我没有包括保留文本颜色等场景.此片段将指导您正确的方向.
| 归档时间: |
|
| 查看次数: |
14414 次 |
| 最近记录: |