2016-09-16 6 views
0

実行時にいくつかのボタンを作成する必要があります。私はオンラインで解決策を見つけようとしましたが、古いスレッドしかありませんでした。私が見つけた唯一のものは次のコードです:実行時にUI要素を作成する

ViewGroup layout = (ViewGroup)Resource.Layout.Main; 

Button btn = new Button(this); 
btn.Text = "text"; 
btn.LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent); 
layout.AddView(btn); 

これはどのように動作するはずです。コンパイルエラーはありませんが、起動後すぐに終了します。なぜこれが起こり、このコードを正しく書くのか説明できますか?

答えて

0

ViewGroup layout = (ViewGroup)Resource.Layout.Main; 

を行うと、あなたの現在膨らまレイアウトを与えることはありません。 Resource.Layout.Mainは、リソースを指し示すちょうどintです。

代わりに、あなたの現在表示されているレイアウトとidを与える:

android:id="@+id/root" 

は、今ではそれが何であるかの種類に関係ありません。デフォルトのテンプレートはLinearLayoutを使用します。だから、だろう見つける:

var root = FindViewById<LinearLayout>(Resource.Id.root); 

その後、あなたはそれにあなたのボタンを追加することができます:返信用

var button = new Button(this) 
{ 
    Text = "hello", 
    LayoutParameters = new LinearLayout.LayoutParams(
     ViewGroup.LayoutParams.MatchParent, 
     ViewGroup.LayoutParams.WrapContent) 
}; 

root.AddView(button); 
+0

感謝を。私は後でそれをチェックします:] – g2556

+0

それは正常に動作します。どうもありがとうございます:] – g2556

+0

あなたは大歓迎です。 – Cheesebaron

関連する問題