Почему использование XML для создания графического интерфейса является хорошей практикой в Android
Я из фона Java Swing. Могу ли я узнать, почему использование XML для создания графического интерфейса является хорошей практикой в Android? Например, вместо написания кода в (что заставляет меня чувствовать себя более комфортно с ним, как я использую для рабочего стола Swing)
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
Мы пишем код в формате XML.
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
В учебнике указано, что
Эта структура упрощает быстро наращивать пользовательские интерфейсы, используя простая структура и синтаксис, чем вы будет использоваться в программном макете.
Однако, я действительно не покупаю эту идею, поскольку чувствую, что создание отдельного XML файла является более громоздким.
Может ли кто-нибудь дать пример реального мира (в смысле Android), почему использование XML для создания графического интерфейса лучше, чем простой Java-код?
Если программирование GUI через XML - действительно хороший материал, почему он все еще не стал распространенной практикой среди разработчиков настольных приложений GUI?
Ответы
Ответ 1
Использование XML-макетов имеет много преимуществ по сравнению с Java-кодом. Вы получаете легкие ссылки на строки, чертежи, размеры, темы и т.д. Но самым большим преимуществом является автоматическая поддержка нескольких конфигураций. Без изменения кода вы можете иметь разные макеты для пейзажа и портрета, просто имея XML-макет в layout-land/and layout-port/. И вы можете сделать то же самое, чтобы адаптировать макет к различным разрешениям, языкам и т.д.
Ответ 2
Если GUI-программирование через XML - действительно хороший материал, почему он все еще не стал обычной практикой среди разработчиков настольных приложений GUI?
- В .NET-разработке используется XAML, который представляет собой XML
- Разработка Flex для Интернета и рабочего стола через AIR, который представляет собой XML
- Разработка XUL - это XML
- ~ 20 привязок XML для Swing и SWT
Учитывая, что только .NET-разработка, вероятно, превосходит все другие разработки графического интерфейса для настольных компьютеров, я бы сказал, что она "стала обычной практикой среди разработчиков настольных приложений GUI".
Кроме того, использование XML для GUI является одной из сторон более крупного "декларативного интерфейса", который имеет много не-XML-форм, таких как JSON-ish QML для Qt. AFAICT, все основные разработки графического интерфейса перемещаются для включения такой декларативной разметки в одну форму или способ.
Ответ 3
Как я думаю, вы находитесь на фоне Java Swing, так что, возможно, вы считаете, что программно создавая макет является легкой задачей. Но есть много причин, по которым вы можете думать о стратегии XML:
1) Конструкция XML-макета легко понять, а также сохранить пользовательский интерфейс приложения отдельно от кода приложения.
2) Существует множество устройств на рынке с разной конфигурацией дисплея и Android, что упрощает задачу создания пользовательского интерфейса для всех с использованием XML и сохранения их отдельно.
3) Также, если вы хотите разработать многоязычное приложение, тогда лучше всего использовать XML.
Нижняя строка:
Используйте только код Java для макета, если вам действительно нужно, чтобы у вас был еще лучший вариант XML.
Ответ 4
Подумайте о создании пользовательского интерфейса с использованием HTML/CSS. Я всегда считаю это удобным по сравнению с Swing. И я верю, что это не только я, но и другие люди тоже думают так же, т.е. Jelly Swing.
Ответ 5
Ну, во-первых, он позволяет использовать GUI-сборщики (например, построенный разработчиком eclipse Builder).
Это также помогает отделить вашу бизнес-логику от логики отображения.
Наверное, однако, вы очень хорошо разбираетесь в коде Swing, и вы забыли, сколько времени потребовалось для наращивания этих навыков.:)
Ответ 6
Я должен сказать, что любой из способов может хорошо работать, если разработчик является квалифицированным.
Однако, я думаю, мы должны рассмотреть, как эта работа в команде. Я согласен с тангенсом. Таким образом, мы можем легко отделить разработчика и разработчика приложений. В команде ppl может сосредоточить только то, что они делают.
Ответ 7
Вот мои мысли:
- отличный способ позаботиться о моем водопроводе GUI.
- всякий раз, когда мне нужно экспериментировать с размерными значениями GUI, код не нуждается в перекомпиляции
- XML-макеты, как правило, очень легко понять - первоначальная разработка графического интерфейса упрощается