Добавление документации в файл макета


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

Я знаю, что это возможно сделать при использовании <declare-styleable>. Это:

<declare-styleable name="myStyleable">
    <!-- Some comment -->
    <attr name="someAttr" format"color" />
</declare-styleable>

Выдает этот вывод, который я хотел бы получить для файлов макета без успеха:

public final class R {
    /** Some comment */
    public static final int someAttr...
}

Знает ли кто-нибудь о средстве достижения этого ? Я вмешиваюсь в:

  • документирование файла макета, чтобы документация была доступна при использовании R. layout. my_layout
  • документирование конкретного элемента файла, чтобы документация была доступна при его нахождении по идентификатору f. e. aView.findViewById(R.id.the_id_that_is_documented)
1 2

1 ответ:

Кстати, я нашел часть ответа : для ids можно добавлять комментарии, если id определен в файле ресурсов (в res/values) :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- This is a comment -->
    <item name="myId" type="id"></item>    
</resources>

Произведет этот результат в R.class :

public final class R {
    public static final class id {
    /**  This is a comment 
     */
    public static int myId=0x7f050007;
}

Это не будет работать непосредственно в файле макета, если вы используете @+id/some_cute_id


Edit: и вот ответ для файлов макета. На самом деле он может работать для всего (нашел его в источниках sdk в res/values/public.xml). Это:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 
         * This layout contains a list that enables to choose a bluetooth device to pair with among paired ones -->
    <public type="layout" name="devices_choose" id="0x7f030005" />    
</resources>

Производит этот выход в R:

public final class R {
    public static class layout {
        /**  
         * This layout contains a list that enables to choose a bluetooth device to pair with among paired ones 
         */
        public static final int devices_choose=0x7f030005;
    }
}