簡體   English   中英

如何向當前的開放活動Android添加元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM