[英]setContentView() with XML layout vs View
在Android中,我習慣於使用XML文件設置布局
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
但是您也可以使用Java中的View設置內容
// 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文件嗎?
當然。
在您的layout.xml文件中,您必須定義main layout
的id
(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);
}
當您使用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);
例如:
在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");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.