Это зависит от того, чего вы хотите достичь, например, если у вас есть требование отображать данные из запроса к базе данных в линейном макете, из-за динамических данных вы не знаете, какие поля вам нужно определить и сколько полей вам нужно определите, в этом случае, вы будете иметь XML в качестве каркаса и будете реализовывать логику добавления реальных полей в коде Java.
Другой случай, когда вы заранее знаете, сколько полей может иметь ваша раскладка, например, форма входа, в этом случае ее очень просто определить в XML, я чувствую, что основная причина в том, что вам не нужно писать целиком много кода Java.