(не может найти ссылку на идентификатор). Ресурс не соответствует указанному имени в
У меня есть внутри внутри относительный макет.
<TextEdit
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/buttonA"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/buttonA" />
<Button
android:id="@+id/buttonA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/message" >
</Button>
Eclipse дает мне эти ошибки в строках android: layout_alignBottom = "@id/buttonA" и android: layout_toLeftOf = "@id/buttonA" соответственно:
error: Ошибка: ресурс не найден, который соответствует указанному имени (в 'layout_alignBottom' со значением '@id/buttonA').
error: Ошибка: ресурс не найден, который соответствует указанному имени (в 'layout_toLeftOf' со значением '@id/buttonA').
Замена @id/buttonA на @+ id/buttonA удаляет это сообщение об ошибке затмения. Это правильная вещь? Если да, то зачем это работать? Не создает ли @+ id новый идентификатор? Я не хочу новый идентификатор. Я хочу использовать ссылку, указанную в объекте кнопки. Каков наилучший способ справиться с этим?
Спасибо, ребята. -Joe
Ответы
Ответ 1
Использование @+id
- правильный способ сделать это. @+id
создает новый идентификатор, но только если имя с таким именем еще не существует.
Если вы не хотите этого делать, для этого конкретного простого случая было бы достаточно перемещать TextEdit
ниже Button
.
Ответ 2
Макет, который вы пытаетесь использовать в качестве ссылки, должен быть определен до того, как он будет использован в качестве ссылки, т.е. использовать как 'layout_toLeftOf'.
Это как если бы вы объявили переменную в java перед ее использованием. Объявите, а затем используйте его...
Если вам нужно указать идентификатор перед его определением в файле, вам нужно использовать @+id/textView1
вместо @id/textView1