Решение, которое я нашел Цель состоит в том, чтобы создать элементы программно, которые ранее были в стиле где-то еще.
Во-первых, я создал новый файл XML в папке res/layout. Я назвал его template.xml и вставил в него следующий код:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
style="@style/rootElement"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/firstChildId"
style="@style/firstChild" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/secondChild" />
</LinearLayout>
А потом я стиль тогда, как я хотел в стилей.XML-файл
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="rootElement">
<!-- style -->
</style>
<style name="firstChild">
<!-- style -->
</style>
</resources>
Теперь в моем классе активность я добавил:
LinearLayout rootElement = (LinearLayout) getLayoutInflater().inflate(R.layout.template, null);
someOtherView.addView(rootElement);
инфлятор загрузит шаблон, который мы создали в Рез/макет/template.xml (все элементы в этом файле и его атрибуты) и назначить его rootElement
, который затем используется в моем коде для чего-либо еще. Пример
TextView firstChild = (TextView) rootElement.getChildAt(0);
firstChild.setText("It is the firstChild element");
или
TextView firstChild = (TextView) rootElement.findViewById(R.id.firstChildId);
...
Довольно просто, не так ли ?! Надеюсь, что поможет
Его вопрос: «Стили, созданные программно на Android», а не через файлы XML. – prijupaul
@prijupaul виджеты, созданные в коде, подбирают тему, примененную к объявлению приложения в манифесте. Стили могут применяться как в коде, так и в XML, Темы и стили должны быть созданы как XML-документы. Так в чем ваш смысл? – jamesc