Вопрос по android, android-layout – (не могу найти ссылку на идентификатор) Нет ресурса, соответствующего указанному имени в

12

У меня есть следующее внутри относительного макета.

<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 = & quot; @ id / buttonA & quot; android: layout_toLeftOf = & quot; @ id / buttonA & quot; соответственно:

ошибка: ошибка: не найден ресурс, который соответствует данному имени (в «layout_alignBottom» со значением «@ id / buttonA»).

ошибка: ошибка: не найден ресурс, который соответствует заданному имени (в «layout_toLeftOf» со значением «@ id / buttonA»).

Замена @ id / buttonA на @ + id / buttonA удаляет это сообщение об ошибке затмения. Это то, что нужно сделать? Если так, то почему бы это сработало? T @ + id не создает новый идентификатор? Я не хочу новый идентификатор. Я хочу использовать тот, который указан в объекте кнопки. Каков наилучший способ справиться с этим?

Спасибо, парни. -Джо

Ваш Ответ

2   ответа
31

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

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded J50
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded J50
1

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

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

Похожие вопросы