2013-12-09 74 views
0

在Android中,我已經習慣了與XML文件的setContentView()的XML佈局VS查看

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

設置佈局,但你也可以設置使用查看內容的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文件?

+0

嗯,我不認爲你可以在一個Activity中同時應用setContentView()。 –

+0

看到這個:http://stackoverflow.com/questions/3995215/add-and-remove-views-in-android-dynamically或http://stackoverflow.com/questions/4203506/how-can-i-add- A-的TextView至A-LinearLayout中,動態的,機器人 –

回答

2

當然。

在你layout.xml文件必須定義idmain layout(android:id="@+id/mainLayout"),然後你可以這樣做:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ViewGroup mainView = (ViewGroup) findViewById(R.id.mainLayout); 

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

    mainView.addView(textView); 
} 
2

當您使用的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); 
0

例如:

在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");   
    } 
}