14

ho molto semplice layout in cui io uso nuovo android.support.design.widget.TextInputLayout vista dalla Design Support LibraryRuntimeException durante l'utilizzo di nuova TextInputLayout dalla libreria di supporto di progettazione

<android.support.design.widget.TextInputLayout 
    android:id="@+id/til" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <EditText 
     android:id="@+id/textDialog" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="First Name"/> 
</android.support.design.widget.TextInputLayout> 

Su gonfiare ottengo un'eccezione:

Caused by: java.lang.RuntimeException: Failed to resolve attribute at index 18 
      at android.content.res.TypedArray.getColor(TypedArray.java:401) 
      at android.support.design.widget.CollapsingTextHelper.setCollapsedTextAppearance(CollapsingTextHelper.java:166) 
      at android.support.design.widget.TextInputLayout.<init>(TextInputLayout.java:106) 
            at java.lang.reflect.Constructor.newInstance(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:381) 
            at android.app.Activity.setContentView(Activity.java:2144) 
            at com.example.trybindinglib.MainActivity.onCreate(MainActivity.java:24) 
            at android.app.Activity.performCreate(Activity.java:5933) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2407) 
            at android.app.ActivityThread.access$800(ActivityThread.java:149) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:211) 
            at android.app.ActivityThread.main(ActivityThread.java:5321) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811) 
+0

Non era "fill_parent" ritirato 5 anni fa? Questo dovrebbe generare un altro avvertimento – milosmns

+0

hai trovato una soluzione per questo problema? Sto ottenendo lo stesso errore. se hai trovato un problema, puoi postarlo come risposta :) – edwinj

+0

Problema simile: http://stackoverflow.com/questions/35767158/android-edittext-with-textinputlayout-crashing-when-reaching-limit-of -countermax – Jonas

risposta

5

Assicurarsi app tema si estende Tema AppCompat.

<!-- Base application theme. --> 
    <style name="AppTheme" parent="@style/Theme.AppCompat"> 
     <!-- Customize your theme here. --> 
    </style> 
+0

Mine estende appCompat, ma il problema persiste – Darpan

15

Hai aggiunto la libreria di supporto di progettazione? Aggiungere la dipendenza:

compile 'com.android.support:design:22.2.0' 

al build.gradle

4

Ho avuto lo stesso problema su un'applicazione grezzi generati con Android Studio.

ho risolto aggiungendo prima il seguente dipendenza alla mia build.gradle compilare 'com.android.support:appcompat-v7:22.2.0'

Poi ho dovuto modificare la base tema @ style/Theme.AppCompat come suggerito da Aleksey. Avviso qui che probabilmente si dovrà rinominare il tema di base in quanto v'è una con lo stesso nome (AppTheme) in appcompat biblioteca e AS sembra avere incasinato tra i due ...

Spero che questo aiuti!

1

GetColor si blocca, si può provare due cose:

1.Instead di utilizzare EditText, utilizzare android.support.v7.widget.AppCompatEditText. Per esempio:

<android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:errorEnabled="true"> 
       <android.support.v7.widget.AppCompatEditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="First Name" 
        android:inputType="textPersonName" 
        android:singleLine="true" /> 

</android.support.design.widget.TextInputLayout> 

2. Se questo non aiuta, questo potrebbe, ma sarà rimuovere il colore del vostro suggerimento quando si seleziona il campo di inserimento. Aggiungi:

  app:hintTextAppearance="@android:style/TextAppearance.Small" 

per TextInputLayout.

+0

Dopo aver provato tutto il resto, il passaggio da EditText a AppCompatEditText risolve il problema. Grazie!! – FinHead

1

Assicurati che il tuo XML assomiglia a:

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <EditText 
     android:id="@+id/search" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="search" /> 
</android.support.design.widget.TextInputLayout> 

esempio completo:

http://hmkcode.com/android-textinputlayout/

Nessun cambiamento themeStyle necessaria

8

Se si utilizza Theme.AppCompat come tema l'applicazione di base, definire il textColorError in esso. TextInputLayout deve utilizzarlo negli stati di errore. Altrimenti mostrerà il registro degli arresti anomali proprio come detto sopra.

Esempio:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="textColorError"> @color/design_textinput_error_color_light </item> 
</style> 

È @color/design_textinput_error_color_light per AppCompat.Light e @color/design_textinput_error_color_dark per AppCompat.Dark.

+0

Grazie, funziona. Se desideri puoi impostare qualsiasi altro colore che ti piace. – CoolMind