Подтвердить что ты не робот

(не может найти ссылку на идентификатор). Ресурс не соответствует указанному имени в

У меня есть внутри внутри относительный макет.

<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

4b9b3361

Ответ 1

Использование @+id - правильный способ сделать это. @+id создает новый идентификатор, но только если имя с таким именем еще не существует.

Если вы не хотите этого делать, для этого конкретного простого случая было бы достаточно перемещать TextEdit ниже Button.

Ответ 2

Макет, который вы пытаетесь использовать в качестве ссылки, должен быть определен до того, как он будет использован в качестве ссылки, т.е. использовать как 'layout_toLeftOf'.

Это как если бы вы объявили переменную в java перед ее использованием. Объявите, а затем используйте его...

Если вам нужно указать идентификатор перед его определением в файле, вам нужно использовать @+id/textView1 вместо @id/textView1