2013-03-06 47 views
0

我試圖從代碼中添加一些控件,而不是從.xml中添加。我使用的代碼如下:如何從代碼創建UI?

protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      // Set our view from the "main" layout resource 
      SetContentView(Resource.Layout.Main); 

      mainLayout = FindViewById<LinearLayout>(Resource.Id.mainLayout); 

      Button test = new Button(Window.Context) { Text = "BLABLABLA" }; 
      test.SetWidth(100); 
      test.SetHeight(100); 

      LinearLayout.LayoutParams _params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WrapContent, LinearLayout.LayoutParams.WrapContent, 0.0f); 
      _params.SetMargins(10, 10, 0, 0); 
      mainLayout.AddView(test, _params); 
     } 

但是按鈕沒有出現在我的應用程序中。什麼可能是錯誤的?

更新:現在的作品!但我不明白我做了什麼,爲什麼它沒有運行過。但無論如何,謝謝大家。

+0

你可以顯示你的'Resource.Layout.Main'嗎? – 2013-03-06 14:03:44

回答

1

你想念你的onCreate()方法中調用setContentView(mainLayout);

請注意,您必須調用此方法後生成佈局。

+0

我不會錯過電話。我試圖以不同的方式設置文本。我沒有幫助 – user2140182 2013-03-06 13:57:38

+2

@ user2140182您必須在生成佈局後調用它 – poitroae 2013-03-06 14:02:20

0

首先要設置你應該把它設置爲按鈕測試的LayoutParams而不是佈局是這樣的:

test.setLayoutParams(_params); 

,然後將其添加到郵件的佈局,像這樣:

mainLayout.AddView(test);