[英]How to add elements to the current open activity Android
我是android的新手,我試圖了解如何添加元素以打開活動布局並立即顯示更改。 是否可以通過addView
添加? 我嘗試沒有成功。
TextView sv = new TextView(this);
TextView b = new TextView(this);
sv.setGravity(Gravity.CENTER_VERTICAL);
b.setText("ggg");
sv.setText("asdsadasdasdasdasdas");
RelativeLayout ll = new RelativeLayout(this);
ll.addView(sv);
ll.addView(b);
this.setContentView(ll);
這樣,它刪除所有之前
如果要將元素添加到預先存在的布局中,則不應創建新的RelativeLayout。 您應該這樣創建對現有RelativeLayout的引用。
TextView textView = new TextView(this);
textView.setGravity(Gravity.CENTER_VERTICAL);
textView.setText("New TextView");
RelativeLayout layout = (RelativeLayout)findViewByID(R.id.layout_id);
layout.addView(textView);
用您的XML布局的ID替換layout_id。
是的,您可以在運行時添加。 從inflate函數獲取View實例,並添加到活動中的布局中。 如果遇到問題,請告訴我您的代碼。
setContentView
替換您的布局,而addContentView
會將其添加到當前布局。 http://developer.android.com/reference/android/app/Activity.html#addContentView(android.view.View,android.view.ViewGroup.LayoutParams)
但這不是這樣做的方法。
使用一些根布局(例如LinearLayout)定義基本布局,在初始setContentView之后,執行findViewById以獲取對該布局的引用,然后可以向其實時添加視圖
碼:
onCreate(...) {
setContentView(R.layout.my_initial_layout);
root = (LinearLayout) findViewById(R.id.my_root_view);
}
whenSomethingHappens() {
TextView tv = new TextView(this);
tv.setText("Hello!");
root.addView(tv);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.