如何在我的代码中添加textView和editText中的样式?

时间:2011-11-17 19:31:42

标签: java android styles textview android-edittext

我在代码中创建了textView和editText。

           TextView textview = new TextView(getActivity());

            final EditText editText = new EditText(getActivity());
            editText.setGravity(Gravity.CENTER);

我的res / values / mystyle风格 当我在textView中添加样式时,它看起来像这样:

 TextView textview = new TextView(getActivity(), null,  R.style.editTextStyle);

但是,没有任何改变。 如何在我的代码中添加textView和editText中的样式。我做错了什么?  谢谢大家!

1 个答案:

答案 0 :(得分:5)

我们无法以编程方式设置样式:android set style in code。至少还没有。我应该移动样式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>


然后,应使用TextViewActivity代码中创建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>