Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Build an Interactive Story App (Retired) User Input Using RelativeLayouts and ImageViews

Ioannis Tsappis
Ioannis Tsappis
1,047 Points

Layout_Below

Next, we want to position the ImageView directly below the EditText. We do this using the layout_below attribute. Add this new attribute to the ImageView and set it equal to the ID of the EditText (use "@id/captionField").

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" >

<EditText
    android:id="@+id/captionField"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:hint="Enter a caption" />

<ImageView             
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:src="@drawable/grumpy_cat" 



    android:layout_below="@+id/captionField"/>

</RelativeLayout>

My answer to this challenge was the line: "android:layout_below="@+id/captionField"/>" and i get the message: Bummer! Make sure you are setting the new attribute to "@id/captionField"!

2 Answers

Plamen Neshkov
Plamen Neshkov
18,236 Points

Notice that you have an extra + in your answer. This + is only added after the @ when you're declaring a new ID in that namespace. To reference that ID you do not add a +: @id/captionField and NOT @+id/captionField

Ioannis Tsappis
Ioannis Tsappis
1,047 Points

Thank you Plamen. That was very helpful!

Mazen Halawi
Mazen Halawi
7,806 Points

When you assign a new ID to an element using "android:id" you use the @+id but when you want to refer to an element in the layout you dont need to use @+id you use @id. @+id forces android to create a new numeric value for that element, though your code is likely to work in the IDE but on teamtreehouse you need to be specific and use @id instead (get used to this method)

Ioannis Tsappis
Ioannis Tsappis
1,047 Points

Thank you Mazen. I copy-paste the id from the EditText and i didn't notice the "+".