Eclipse Layout Editor отсутствует ошибки - PullRequest
0 голосов
/ 12 декабря 2011

Я просто провел два часа, сражаясь с глупой опечаткой.Я создал RelativeLayout, похожий на этот:

<RelativeLayout ...>
    <EditView ...
          android:layout_toLeftOf="@+id/button1"/>
    <Button ...
          android:id="@+id/buton1"
          android:layout_toLeftOf="@+id/button2"/>
    <Button ...
          android:id="@+id/buton2"/>
</RelativeLayout>

Обратите внимание на неправильные имена элементов управления - buton1 и buton2.

Eclipse не сообщил об ошибке какого-либо рода, просто не удалось выложитьконтролирует правильно.Что еще хуже, выполнение действия в эмуляторе также не привело к ошибке, просто неправильный макет.

Есть ли способ заставить Eclipse или эмулятор сообщать о "отсутствующем идентификаторе buton1"какая-то ошибка?Это очень неприятная проблема, которую можно отследить, и которую очень легко обнаружить с помощью компьютера.

Итай.

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

ADT 17 будет иметь новое правило lint для обнаружения этой ошибки. (См. http://tools.android.com/tips/lint для получения информации о правилах ADT 16 lint; есть дублирующий детектор идентификатора, но не один для обнаружения вашего сценария.)

0 голосов
/ 12 декабря 2011

в кнопке 1 вы определяете идентификатор с помощью знака + в атрибуте макета

<Button ...
          android:id="@+id/buton1"
          android:layout_toLeftOf="@+id/button2"/>

как указано выше, вам нужно удалить только знак "+" из значения атрибута layout_toLeftOf

<Button ...
          android:id="@+id/buton1"
          android:layout_toLeftOf="@id/button2"/>

и еще одна вещь может привести к ошибке, потому что, хотя время интерпретации этого XML-файла, button2 не был найден, в этом случае просто напишите вам button2, определите выше button1 таким же образом в EditView

0 голосов
/ 12 декабря 2011

Если вы напишите идентификатор, начинающийся со знака плюс, идентификатор будет создан, если он не существует.Если вы опустите знак плюса в идентификаторе, идентификатор будет необходимо определить до этого.

Таким образом, в вашем случае, если вы напишите, как показано ниже, вы получите ошибку «отсутствует ссылка»:

<RelativeLayout ...>
    <Button ...
          android:id="@+id/buton2"/>
    <Button ...
          android:id="@+id/buton1"
          android:layout_toLeftOf="@id/button2"/>
    <EditView ...
          android:layout_toLeftOf="@id/button1"/>
</RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...