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

Steven Sierra Forero
Steven Sierra Forero
3,486 Points

What is the difference between @+id and @id?

The code challenge rejected to use @+id/captionField and instead suggested to use @id/captionField, what is the difference?

activity_main.xml
<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_alignParentLeft="true"
        android:layout_alignParentTop="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:layout_below="@id/captionField"
        android:src="@drawable/grumpy_cat" />

</RelativeLayout>

1 Answer

When you use the +sign you are instructing the parser(or builder) to create a new entry in R.java. Without the + you are referring to an id that has already been created, so the parser links it to the id which has already been created.