2014-01-16 5 views
0

xml에 정의 된 myText라는 Textview가 있습니다. textview에는 실제로 선택자 인 drawable이 있습니다.TextView에서 텍스트의 색을 변경하는 방법

사용자가 TextView를 클릭하면 드로어 블을 변경할뿐만 아니라 텍스트의 색도 바꿀뿐입니다. 변경을 수행하는 코드는 다음과 같습니다. 문제는 drawable 만 변화하고 있다는 것입니다. 텍스트가 바뀌지 않습니다. 텍스트 색상이 변경되도록이 코드를 수정하려면 어떻게해야합니까? Color.RED :

내부 활동

if (R.color.my_red == myText.getCurrentTextColor()) { 
     myText.setSelected(true); 
     myText.setTextColor(getResources().getColor(R.color.my_blue)); 
    } else { 
     myText.setSelected(false); 
     myText.setTextColor(getResources().getColor(R.color.my_red)); 
    } 

선택

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/im_red" android:state_pressed="true"/> 
    <item android:drawable="@drawable/im_blue"/> 

</selector> 

답변

0

당신은 인스턴스에 대한 Color 클래스를 사용할 수 있습니다. 또는 HTML 스타일의 색상이있는 경우 다음을 사용할 수도 있습니다. .setTextColor(Color.parseColor("#FFFFFF"))

+0

이것은 기본적으로 user3093402가 이미 수행하고있는 것과 같습니다. user3093402 대신 색상 자원을 전달합니다. 게시에 대한 감사하지만 –

+0

해결책을 찾았습니다. 위의 내 대답을 참조하십시오. – user3093402

1

문제점을 발견했습니다. 나는 사과와 오렌지를 비교하고 있었다. 해결 방법은 getResources().getColor을 if 절에 추가하는 것입니다.

if (getResources().getColor(R.color.my_red) == myText.getCurrentTextColor()) { 
     myText.setSelected(true); 
     myText.setTextColor(getResources().getColor(R.color.my_blue)); 
    } else { 
     myText.setSelected(false); 
     myText.setTextColor(getResources().getColor(R.color.my_red)); 
    } 
관련 문제