我有ListView
并为ListView
项创建了一个xml文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_item_selector_back"
android:minHeight="?attr/listPreferredItemHeight"
android:orientation="vertical">
<CheckedTextView
android:id="@+id/list_item_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:textColor="@color/list_item_selector_fore" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/list_item_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/list_item_selector_fore" />
<!-- and many more TextView elements -->
</LinearLayout>
</LinearLayout>
list_item_selector_fore.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/white" android:state_pressed="true" />
<item android:color="@android:color/white" android:state_activated="true" />
<item android:color="@android:color/white" android:state_focused="true" />
<item android:color="@android:color/black" />
</selector>
如您所见,我在根LinearLayout
中定义了一次背景。但我必须为每android:textColor="@color/list_item_selector_fore"
设置TextView
。
我尝试了前景,但没有任何反应。我怎样才能更聪明?
如何看待: two list view items
答案 0 :(得分:0)
如果我正确理解了这个问题,你想要改变TextView中文本的颜色。从你的XML看起来你希望它是onClick
因此你可以这样做:
TextView textView = (TextView) findViewById(R.id.myTextView);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setTextColor('set text color here');
}
});
编辑:
如果您在ListView
中包含这些内容,我建议您实现所需内容的最简单方法是设置OnItemClickListener
,然后根据textColor
更改OnItemClick
ListView listView = (ListView) findViewById(R.id.listView);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.rowItemTextView);
textView.setTextColor('color goes here');
}
});
事件,可能看起来像这样;
Array.forEach
希望这个简短的片段能引导您朝着正确的方向前进。
答案 1 :(得分:0)
如果你想为所有TextView做,最好的方法应该是TextView
的子类public class CustomeTextView extends TextView{
public CustomeTextView(Context context) {
super(context);
this.setTextColor(R.color.white);
}
}