在按下的状态下,如何更改网格视图项的文本颜色?

时间:2015-03-30 08:35:26

标签: android android-layout colors

我有一个网格视图,每个项目都是文本视图。最初文本颜色是白色,背景颜色是透明的,当按下时,项目背景颜色将变为白色,在这种情况下是文本颜色并且项目颜色为白色。按下时整个布局将变为白色。

我想以编程方式设置网格项的文本颜色,我知道我可以使用选择器更改文本的颜色。

但我想根据背景颜色以编程方式设置文本颜色。

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);
});

需要帮助......提前谢谢!

1 个答案:

答案 0 :(得分:2)

color

中创建一个res文件夹

在同一文件夹中创建一个选择器,其名称为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" />