2011-02-07 76 views

回答

6

我看到錯誤烏爾在這裏做

LinearLayout mainLayout = (LinearLayout) findViewById(R.layout.main); 

你[R取佈局的LinearLayout對象,你應該採取的LinearLayout ID

嘗試這

LinearLayout lnr = (LinearLayout) findViewById(R.id.LinearLayout01); 

Button b1 = new Button(this); 

b1.setText("Btn"); 

lnr.addView(b1); 
+0

是的,但按鈕沒有在xml中定義。我想要做到以下幾點:Button b = new Button(this); LinearLayout mainLayout =(LinearLayout)findViewById(R.layout.main); mainLayout.addView(b),我嘗試這個,但我得到一個錯誤。這是做到這一點的方式嗎? – user501223 2011-02-07 19:31:18

+0

什麼是錯誤?你嘗試過addView(b,新的LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT))嗎? – gngr44 2011-02-07 20:54:37

3

你可以在你的代碼編程,如果你想添加控件,或與查看和吹氣甚至是另一個XML。

在這裏,你可以閱讀的基本知識:http://developer.android.com/guide/topics/ui/declaring-layout.html

+0

我已經閱讀文檔,但它並沒有提到如何添加新的控件(在運行時創建的),以現有的XML佈局文件。 – user501223 2011-02-07 19:34:52

0

你可以做到這一點很容易s在要添加視圖的佈局上設置一個ID。說你的main.xml這個樣子:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView android:id="@+id/label" 
     android:layout_width="fill_parent"/> 
    <LinearLayout android:id="@+id/container" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
    </LinearLayout> 
</LinearLayout> 

讓我們假設你想用的ID id/container添加到LinearLayout補充意見。在你onCreate方法,你可以檢索該對象以備以後使用:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mContainer = (ViewGroup)view.findViewById(R.id.container); 
} 

現在,你都設置爲其他視圖添加到您的容器ViewGroup

LinearLayout theButtons = getButtons() 
mContainer.addView(theButtons); 

getButtons方法,你需要創建包含您需要的按鈕的LinearLayout。您可以通過編程或通過膨脹XML文件中定義的視圖來完成此操作。見LayoutInflater.inflate

3

好吧,我已經得到它的工作。

的步驟如下: 首先膨脹XML佈局,即

View view = View.inflate(this, R.layout.main, null); 

然後實例從XML佈局的容器對象插入的ViewGroup類,即

ViewGroup container = (ViewGroup) view.findViewById(R.id.myContainer); 

然後創建linearLayout對象,創建並添加所需的任何控件,將linearLayout添加到容器對象並在視圖對象上使用setContentView,即

container.addView(buttonsLayout); 
this.setContentView(view); 
0

只是試試這個:

LinearLayout mainLinearLayout = (LinearLayout) findViewById(R.layout.llmain); 

現在動態這樣

Button btn1 = new Button(this); 
btn1.setText=("Button 1"); 
mainLinearLayout .addView(btn1); 

創建按鈕,現在如果你想添加onether的LinearLayout然後將其添加下面的按鈕,然後

LinearLayout llinner = new LinearLayout(this); 

Button btn2 = new Button(this); 
btn2.setText=("Button 2"); 
mainLinearLayout .addView(btn2); 

llinner.addView(btn2); 

mainLinearLayout .addView(llinner); 
0

試試這個:

LinearLayout ll =(LinearLayout)findViewById(R.id.linlay); 
Button b = new Button(this); 
b.setText("Hello"); 
l.addView(b); 

這可以幫助你

相關問題