2015-05-25 49 views
0

當用戶按下並保存TextView區域時,我試圖實現從棕色到綠色的顏色更改。在選擇器不工作的情況下更改TextView的顏色

我的選擇代碼(位於res/color文件夾):

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:state_focused="true" android:color="@color/main_menu_text_battle_mode_on"/> 
     <item android:state_pressed="true" android:state_enabled="false" android:color="@color/main_menu_text_battle_mode_on" /> 
     <item android:state_enabled="false" android:color="@color/main_menu_text_battle_mode_on" /> 
     <item android:color="@color/main_menu_text_brown"/> 
</selector> 

TextViewTypeWriterLinearLayout

<model.TypeWriter 
     android:layout_gravity="center_horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/endAllBattles" 
     android:duplicateParentState="true" 
     android:text="End all battles" 
     android:textColor="@color/main_menu_text_color_selector" 
     android:enabled="true" 
     android:clickable="true" 
     android:focusable="true" /> 

顏色styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="main_menu_text_brown">#653823</color> 
    <color name="main_menu_text_battle_mode_on">#005500</color> 
</resources> 

項目文件夾結構:

enter image description here

的顏色總是褐色。任何想法?我首先想到它可能是不正確的文件夾結構,但棕色的作品。

構建Build.gradle:因爲你`Android的使用

apply plugin: 'com.android.application' 
apply plugin: 'com.parse' 

buildscript { 
    repositories { 
    mavenCentral() 
    maven { url 'https://maven.parse.com/repo' } 
    } 
    dependencies { 
    classpath 'com.parse.tools:gradle:1.+' 
    } 
} 

dependencies { 
    compile 'com.parse.bolts:bolts-android:1.2.0' 
    compile fileTree(dir: 'libs', include: 'Parse-*.jar') 
    compile fileTree(dir: 'libs', include: 'ParseCrashReporting-*.jar') 
    compile fileTree(dir: 'libs', include: 'gson-2.3.1.jar') 

} 

android { 
    compileSdkVersion rootProject.ext.compileSdkVersion 
    buildToolsVersion rootProject.ext.buildToolsVersion 

    defaultConfig { 
     minSdkVersion rootProject.ext.minSdkVersion 
     targetSdkVersion rootProject.ext.targetSdkVersion 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     buildTypes { 
      debug { 
       minifyEnabled false 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 

      } 
      release { 
       minifyEnabled true 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 
         'proguard-rules.pro', 'proguard-rules-new.pro' 
      } 
     } 

    } 
} 
+0

爲了什麼我可以看到你的文字的加壓狀態從未選擇:state_pressed =「真」機器人:state_enabled = 「假」'。嘗試從該行刪除'android:state_enabled =「false」'或將它的值更改爲'true' –

+0

嘗試過,不行;/ –

+0

TypeWriter是一個擴展TextView的類嗎? – Akariuz

回答

1

嘗試僅僅這些

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    <item android:state_pressed="false" android:color="@color/main_menu_text_brown" /> 
    <item android:state_pressed="true" android:color="@color/main_menu_text_battle_mode_on" /> 
    <item android:color="@color/main_menu_text_brown" /> 
</selector> 
+0

不起作用。 ;/ –

+1

從textView中刪除「android:duplicateParentState」它會正常工作 –

+0

令人驚歎!謝謝。 –

相關問題