我有一个 GridView ,每个项目都是一个 TextView 。最初文本颜色是白色,背景颜色是透明的,当它被按下时,项目背景颜色将变为白色,在这种情况下文本颜色并且项目颜色为白色。因此按下整个布局将变为白色。
我想以编程方式设置按下时网格项的文本颜色,我知道我可以使用选择器更改文本的颜色。
但我想根据背景颜色以编程方式设置文本颜色。
gridView2.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
tv_list_item_lang=(TextView)view.findViewById(R.id.tv_list_item_lang);
Constants.survey_language = ""
+ languagesNameList.get(position);
Log.d("survey_language", "" + languagesNameList.get(position));
try {
if (Constants.questions_arr_list.size() == 0) {
getCurrentSurveyQuestions();
}
} catch (Exception e) {
// TODO: handle exception
Log.e("exception", "" + Log.getStackTraceString(e));
}
// Intent intent=new
// Intent(SurveyYesNoActivity.this,TwoQuestionsActivity.class);
// startActivity(intent);
// finish();
gridView2.setEnabled(false);
});
需要帮助...提前致谢!
最佳答案
在res
中创建一个color
文件夹
在同一文件夹中创建一个选择器,名称任意,比如 text_pressed.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:color="@color/white"/>
<item android:state_pressed="true" android:color="@color/app_mail_blue"/>
<item android:color="@color/white"/>
</selector>
并设置TextView的textColor
为android:textColor="@color/text_pressed"
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text View"
android:textColor="@color/text_pressed" />
关于android - 如何在按下状态下更改 GridView 项目文本的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29341634/