2

TextInputLayoutTextInputEditTextのフォームがあります。これは、関連するXMLです:入力がTextInputLayoutのcounterMaxLengthを超えたときのRuntimeException

<android.support.design.widget.TextInputLayout 
     android:id="@+id/signup_til_name" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/activity_horizontal_margin" 
     android:hint="Name" 
     app:counterEnabled="true" 
     app:counterMaxLength="16" 
     app:errorEnabled="true"> 

     <android.support.design.widget.TextInputEditText 
      android:id="@+id/signup_etext_name" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="@style/TextAppearance.AppCompat.Small"/> 
    </android.support.design.widget.TextInputLayout> 

私は私の活動は、次のスタックトレースでクラッシュし、このフィールドに入力し、17文字をしようとすると:

java.lang.RuntimeException: Failed to resolve attribute at index 3 
at android.content.res.TypedArray.twGetColorStateList(TypedArray.java:438) 
at android.content.res.TypedArray.getColorStateList(TypedArray.java:420) 
at android.widget.TextView.setTextAppearance(TextView.java:3029) 
at android.support.design.widget.TextInputLayout.updateCounter(TextInputLayout.java:688) 
at android.support.design.widget.TextInputLayout.access$300(TextInputLayout.java:84) 
at android.support.design.widget.TextInputLayout$1.afterTextChanged(TextInputLayout.java:248) 
at android.widget.TextView.sendAfterTextChanged(TextView.java:8929) 

どうやらそれはAPPCOMPATのテーマを使用していないに関係していますが、私はすでにAPPCOMPATのテーマを使用しています:これは関連性があるが、私はまた、使用してこのTextInputEditTextを観察していた場合

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"/> 

わかりませんJake WhartonのRxBindingライブラリRxTextView.textChanges(nameEditText);

+0

'android:textAppearance =" @ style/TextAppearance.AppCompat.Small "を' style = "@ style/TextAppearance.AppCompat.Small"に変更してみてください。 –

+0

@ShreeKrishnaそれはそう思わなかった。私は 'style'と' android:textAppearance'も一緒に取り除こうとしましたが、同じエラーが出ます。 –

+0

'app:'という接頭辞が付いた各属性を削除しようとしましたか?きれいにして再構築する。 –

答えて

2

さらに2つの属性を追加してスタイルを付けることをおすすめします。

<style name="counterText"> 
    <item name="android:textColor">#aa5353cc</item> 
</style> 

<style name="counterOverride"> 
    <item name="android:textColor">#ff0000</item> 
</style> 

が完全な説明 hereを参照してください、
<android.support.design.widget.TextInputLayout 
    .... 
    app:counterTextAppearance="@style/counterText" 
    app:counterOverflowTextAppearance="@style/counterOverride"> 

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

これらの2つのスタイル

は何もなく、単に例のような android:textColor名前のアイテムではない、一つは app:counterTextAppearanceあり、もう一つは、ここのような app:counterOverflowTextAppearanceです。

それがうまくいかなかった場合は、this answerのようにThemeTheme.Design.*に拡張することをおすすめします。

関連する問題