具有XML布局与视图的setContentView()

时间:2013-12-09 13:28:32

标签: java android

在Android中,我习惯使用XML文件设置布局

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

但您也可以使用View in Java

设置内容
    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    // Set the text view as the activity layout
    setContentView(textView);

这会产生无法再使用布局文件的副作用。

反正我是否可以以编程方式设置文本值,仍然使用layout.xml文件?

3 个答案:

答案 0 :(得分:4)

不确定

layout.xml 文件中,您必须定义id main layout的{​​{1}},然后才能执行此操作:

(android:id="@+id/mainLayout" )

答案 1 :(得分:1)

当您使用setContentView(R.layout.activity_main)时,您告诉要使用的布局是xml布局文件activity_main。

当您使用setContentView(textView)时,将由textView组件替换以前添加的xml布局文件。

您可以在布局文件中声明TextView,然后以编程方式设置文本。

TextView textView = (TextView) findViewById(R.id.textView);
textView.setTextSize(40);
textView.setText(message);

答案 2 :(得分:-1)

例如:

在layout.xml中

粘贴此代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id = "@+id/lblText"
        android:textSize="40"
        />

</RelativeLayout>

并且,在您的MainActivity中:

public class MainActivity extends Activity 
{

    private TextView lblText;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.lblText = (TextView)findViewById(R.id.lblText);
        this.lblText.setText("your message");        
    }
}