0

I'm trying to implement the new Material Design floating EditText but I'm getting errors. So, I'm using the latest 'Android Support Design Library' launch by Google on 29th of May 2015. As per instructions I'm compiling the library via build.gradle file as per below:

compile 'com.android.support:design:22.2.+'

According to the Android Developers Blog:

While an EditText alone will hide the hint text after the first character is typed, you can now wrap it in a TextInputLayout, causing the hint text to become a floating label above the EditText, ensuring that users never lose context in what they are entering.

So, here is my code on the layout xml file, the code in question has the id of android:id="@+id/viewTest" and android:id="@+id/fNameTest:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainFragmentViewGroup"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:focusable="true"
    android:focusableInTouchMode="true">

    <ScrollView
        android:id="@+id/scrollableContents"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@color/background">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingBottom="80dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp">

            <view
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                class="android.support.design.widget.TextInputLayout"
                android:id="@+id/viewTest"
                android:layout_alignParentBottom="true"
                android:layout_alignParentStart="true" >

                <EditText
                    android:id="@+id/fNameTest"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:hint="First Name"/>
            </view>

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/roiInitialInvestmentHelpImageView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentStart="true"
                    android:background="?android:attr/selectableItemBackgroundBorderless"
                    android:paddingBottom="2dp"
                    android:paddingEnd="@dimen/activity_horizontal_margin"
                    android:src="@drawable/ic_currency_usd" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_toEndOf="@+id/roiInitialInvestmentHelpImageView"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-medium"
                        android:labelFor="@+id/roiInitialInvestmentEditText"
                        android:paddingTop="@dimen/activity_double_vertical_margin"
                        android:text="Initial Investment"
                        android:textColor="@color/accent"
                        android:textSize="20sp" />

                    <EditText
                        android:id="@+id/roiInitialInvestmentEditText"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:digits="0123456789.,"
                        android:inputType="numberDecimal"
                        android:text=""
                        android:textColor="@color/primary_text_default_material_light" />

                </LinearLayout>

            </RelativeLayout>

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/roiReturnAmountHelpImageView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentStart="true"
                    android:background="?android:attr/selectableItemBackgroundBorderless"
                    android:paddingBottom="2dp"
                    android:paddingEnd="@dimen/activity_horizontal_margin"
                    android:src="@drawable/ic_currency_usd" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_toEndOf="@+id/roiReturnAmountHelpImageView"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-medium"
                        android:labelFor="@+id/roiReturnAmountEditText"
                        android:paddingTop="@dimen/activity_double_vertical_margin"
                        android:text="Return Amount"
                        android:textColor="@color/accent"
                        android:textSize="20sp" />

                    <EditText
                        android:id="@+id/roiReturnAmountEditText"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:digits="0123456789.,"
                        android:inputType="numberDecimal"
                        android:text=""
                        android:textColor="@color/primary_text_default_material_light" />

                </LinearLayout>

            </RelativeLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="32dp"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:fontFamily="sans-serif-medium"
                    android:text="Period"
                    android:textColor="@color/accent"
                    android:textSize="20sp" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="72dp"
                    android:orientation="horizontal">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:width="64dp"
                        android:text="Years"
                        android:textColor="@color/secondary_text_material_light"
                        android:textSize="16sp" />

                    <SeekBar
                        android:id="@+id/roiYearSeekBar"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_weight="1"
                        android:max="10" />

                    <TextView
                        android:id="@+id/roiYearTextView"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:width="40dp"
                        android:gravity="center"
                        android:text="0"
                        android:textColor="@color/secondary_text_material_light"
                        android:textSize="16sp" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="72dp"
                    android:orientation="horizontal">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:width="64dp"
                        android:text="Months"
                        android:textColor="@color/secondary_text_material_light"
                        android:textSize="16sp" />

                    <SeekBar
                        android:id="@+id/roiMonthSeekBar"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_weight="1"
                        android:max="11" />

                    <TextView
                        android:id="@+id/roiMonthTextView"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:width="40dp"
                        android:gravity="center"
                        android:text="0"
                        android:textColor="@color/secondary_text_material_light"
                        android:textSize="16sp" />

                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

    </ScrollView>
</RelativeLayout>

The errors I'm getting are the following:

enter image description here

And the following LogCat message:

    06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.ActivityThread.access$800(ActivityThread.java:151)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.os.Handler.dispatchMessage(Handler.java:102)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.os.Looper.loop(Looper.java:135)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.ActivityThread.main(ActivityThread.java:5254)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at java.lang.reflect.Method.invoke(Native Method)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at java.lang.reflect.Method.invoke(Method.java:372)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
06-26 00:41:33.018: E/AndroidRuntime(11085): Caused by: android.view.InflateException: Binary XML file line #25: Error inflating class android.support.design.widget.TextInputLayout
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.view.LayoutInflater.createView(LayoutInflater.java:633)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at uk.co.codepix.calculator.ui.fragments.RoiInputCalcFrag.onCreateView(RoiInputCalcFrag.java:42)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.Fragment.performCreateView(Fragment.java:2053)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.BackStackRecord.run(BackStackRecord.java:834)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1452)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.Activity.performStart(Activity.java:6005)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
06-26 00:41:33.018: E/AndroidRuntime(11085):    ... 10 more
06-26 00:41:33.018: E/AndroidRuntime(11085): Caused by: java.lang.reflect.InvocationTargetException
06-26 00:41:33.018: E/AndroidRuntime(11085):    at java.lang.reflect.Constructor.newInstance(Native Method)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.view.LayoutInflater.createView(LayoutInflater.java:607)
06-26 00:41:33.018: E/AndroidRuntime(11085):    ... 24 more
06-26 00:41:33.018: E/AndroidRuntime(11085): Caused by: java.lang.RuntimeException: Failed to resolve attribute at index 18
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.content.res.TypedArray.getColor(TypedArray.java:401)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.support.design.widget.CollapsingTextHelper.setCollapsedTextAppearance(CollapsingTextHelper.java:166)
06-26 00:41:33.018: E/AndroidRuntime(11085):    at android.support.design.widget.TextInputLayout.<init>(TextInputLayout.java:106)
06-26 00:41:33.018: E/AndroidRuntime(11085):    ... 27 more

Any idea as to why these errors are happening?

CBA110
  • 1,072
  • 2
  • 18
  • 37
  • even before using any of the api from the design library , were you able to build successfully with gradle ? – Nishant Srivastava Jun 26 '15 at 00:42
  • possible duplicate of [RuntimeException while using new TextInputLayout from support design library](http://stackoverflow.com/questions/30551229/runtimeexception-while-using-new-textinputlayout-from-support-design-library) – tachyonflux Jun 26 '15 at 00:46
  • Hi @Radix... yes it compiles properly. – CBA110 Jun 26 '15 at 01:15
  • @karaokyo you sent me to the right answer. Thanks. I'll post it below. – CBA110 Jun 26 '15 at 01:15

1 Answers1

0

So I found what the problem is. The problem goes away if you make sure your theme on styles.xml is set to:

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

This solved the problem for me. Previously I had "Material" in place.

CBA110
  • 1,072
  • 2
  • 18
  • 37