Мы не можем программно установить стили: Android установить стиль в коде . По крайней мере, пока. Информация в стиле xml должна быть перемещена и преобразована в формат xml макета.
В основном вам необходимо создать новый макет XML, который содержит только одно представление. Вот пример макета для TextView
:
(layout / edit_text_style.xml в моей настройке теста)
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#000033"
android:textColor="#00aa00"
android:typeface="monospace"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</TextView>
Затем TextView
должен быть создан в коде Activity
с использованием getLayoutInflater()
. Вот пример кода:
(MainActivity.java с использованием layout / main.xml в моей тестовой настройке.)
@Override public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout root = (LinearLayout) findViewById(R.id.root);
TextView test = (TextView) getLayoutInflater().inflate(R.layout.edit_text_style, null); // Magic!
test.setText("Ah, hello World..."); // Remove this if you set text in the xml
root.addView(test); // Bang!
В моей настройке теста также есть main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText android:id="@+id/test"
android:text="Absolutely meaningless and mostly harmless text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>