Пользовательский XML-тег Android в main.xml - PullRequest
2 голосов
/ 24 мая 2011

Я изменяю исходный код программы эмулятора терминала для Android, которая содержит следующий запутанный код XML в линейном макете файла main.xml:

<com.vtrandal.bluesentry.EmulatorView
    android:id="@+id/emulatorView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    />

Этот же XML-код также появляется в другом XML-файле, также в / res / layout, вместе с main.xml. Я вижу, что он начинается с пользовательского тега, созданного с использованием имени моего пакета. Но почему? Как это возможно и почему кто-то хочет что-то подобное?

Ответы [ 3 ]

3 голосов
/ 24 мая 2011

Когда вы расширяете представление для создания пользовательского компонента, вам нужен способ добавить эти объекты в макет xml. Вы делаете это, используя полное имя класса, включая имя пакета. ссылка на руководство разработчика , которое Николас опубликовал ранее, объясняет это.

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

Вы можете прочитать хороший учебник об этом здесь: http://www.anddev.org/creating_custom_views_-_the_togglebutton-t310.html

1 голос
/ 24 мая 2011

Не уверен, что именно сбивает с толку.Я приму его com.vtrandal.bluesentry.EmulatorView часть.Это имя класса, который будет создан при накачке XML-файла.

Если вы привыкли к чему-то вроде этого:

<TextView
   android:id="@+id/emulatorView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentLeft="true"
/>

Тогда вы должны знать, что это потому, что TextView находится в android.widget, и вы должны были написать это:

<android.widget.TextView
   android:id="@+id/emulatorView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentLeft="true"
/>

Но поскольку inflater знает о нескольких специальных пакетах (android.widget, android.view, android.webkit), вы можете пропустить их в xml.

1 голос
/ 24 мая 2011

Это синтаксис для создания пользовательских компонентов и представлений в Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...