2010-05-07 8 views
9

사용자가 TextView를 클릭 할 때 텍스트 색상을 변경하는 사용자 정의 된 텍스트 선택기를 디자인하려고합니다. 내가 무슨 오류 팽창 클래스 여기android : 사용자 정의 텍스트 선택자

된다

java.lang.RuntimeException가 : 활동 ComponentInfo를 {} 시작할 수 없습니다 : android.view.InflateException : 바이너리 XML 파일 라인 # 55 그러나 다음과 같은 오류가 발생했습니다 : 그리기/text_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" 
     android:state_focused="true" 
     android:drawable="@color/black" /> 
    <item android:state_pressed="true" 
     android:drawable="@color/blue" /> 
    <item android:state_focused="true" 
     android:drawable="@color/black" /> 
</selector> 

레이아웃/textview.xml

<TextView android:id = "@+id/last_page_button" 
    android:text="@string/last_page_button_string" 
    android:gravity="center_horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="#ffffff" 
    android:textColor = "@drawable/text_selector" 
    android:layout_weight="1" /> 

값/color.xml

<resources> 
    <color name="white">#ffffffff</color> 
    <color name="black">#ff000000</color> 
    <color name="blue">#ffccddff</color> 

답변

24

당신은 텍스트 색상을 그릴 수를 할당 할 수 없습니다. 그것은 색이어야합니다. 다음과 같이

<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_selected="true" 

     android:color="@color/color1" /> 
    <item 
     android:color="@color/color2" /> 
</selector> 

/mycolor.xml이 파일을 저장하고 @ 색상으로 텍스트 색상에 할당, 당신의 입술에

+0

컬러 폴더 여야합니까? 값 폴더 아래에 넣을 수 없습니까? 나는 값 아래서 작동하지 않으려 고 노력했다./ – Yang

+1

그것은 색이어야한다. 왜 그것을 가치에 넣으시겠습니까? 부모님의 시야가 부모님의 상태가되는지 확인하십시오. –

+0

감사합니다. 예외는 더 이상 존재하지 않습니다. 그러나, 내가 "클릭"textview, 색상이 변경되지 않습니다. 나는 눌려진 상태가 있는지 궁금하네요? 아니면 버튼 전용입니까? 사용자가 텍스트를 클릭했을 때 어떤 상태를 지정해야합니까? – Yang

0

사용 선택을 mycolor 폴더 색상을 만들 :

<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:state_selected="true" 

    android:color="@color/c1" /> 
<item 
    android:color="@color/c2" /> 

관련 문제