2013-06-04 2 views
0

Сегодня я начал изучать развитие Android, и мне нужна помощь в понимании того, как работает какой-то код XML. Книга, которую я использую, не объясняет код, однако использование этого дает мне желаемый результат.Как работает этот код XML?

<?xml version="1.0" encoding="utf-8"?> 
<inearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<EditText 
android:id="@+id/myEditText" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="New To Do Item" 
/*The above lines are the only things I understand. the code below does not create an 
actual list, instead just initiates the layout of height and width. */ 
/> 
<ListView 
android:id="@+id/myListView" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
/> 
</LinearLayout> 

Используя этот код не генерирует список дел элементов, которые все с надписью «Пункт 1», «Пункт 2», и т.д ..
я не понимаю, как этот список будет создаваться, когда нет фактический код используется для создания

-Также, я хочу знать, как подходит кодирование XML для программирования на Android. Должен ли я изучать язык, если он будет полезен?
спасибо.

+0

Этот код сам по себе не добавит никаких элементов в список. Должен быть какой-то код в java-файле, который заполняет его. Введите код операции. 'Кроме того, я хочу знать, насколько релевантно кодирование XML для программирования в Android.' - очень важно, все ваши макеты создаются с помощью xml, а также различные другие файлы ресурсов. – FoamyGuy

+0

Это глупо, но это раздражает. XML не является кодом, это данные. Код использует данные для чего-то. – Simon

ответ

5

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

Android использует технологию «Inflate», которая заключается в создании объектов Java на основе XML-тегов, в основном, что она создает класс и свойства (java) на основе тегов и атрибутов (xml), предшествующий код запрашивает к ОС до:

Первая:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

Создайте ViewGroup, в этом случае LinearLayout который является видом держатель, который организует элементы «вертикально» или «горизонтально» в зависимости от ориентации, «fill_parent» атрибуты запрашивают все пространство, которое остается на родительском представлении, если этот элемент parent является корневым представлением, тогда это займет все пространство экрана.

Второе:

<EditText 
    android:id="@+id/myEditText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="New To Do Item"/> 

Создание компонента EditText в пределах этого ViewGroup, который соответствует ширине родителя (в данном случае LinearLayout) и сохранить высоту элемента до тех пор, как содержание в пределах (именно поэтому его начинается 1 одной строки, и, как вы пишете, что может расти вертикально ...)

Третье:

<ListView 
    android:id="@+id/myListView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"/> 

Создать ListView, чтобы показать содержимое в вертикальный прокручиваемый путь, этот элемент может не отображаться, если адаптер не используется для заполнения некоторого содержимого, так как мы используем LinearLayout, этот элемент будет показан ниже созданного ниже EditText ...

С уважением!

+0

Спасибо. Это делает его намного более ясным для меня. – iamseiko

1

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

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

+0

Хорошо, спасибо. – iamseiko

Смежные вопросы