Android uses some files called resources where values are stored for the XML files.
Now when you use @id/ for an XML object, It is trying to refer to an id which is already registered in the values files. On the other hand, when you use @+id/ it registers a new id in the values files as implied by the '+' symbol.
Hope this helps :).