【发布时间】:2012-03-23 12:17:55
【问题描述】:
对于android 的mono,我绝对是初学者。
我使用以下代码 sn-p 以编程方式创建 50 个按钮:
for(int i=0;i<50;i++)
{
//code to calculate x and y position
btn=new Button(this);
//btn.SetBackgroundColor(Android.Resource.Color.);
btn.SetTextSize(Android.Util.ComplexUnitType.Sp,8);
btn.Text="Scrip "+i+"\n"+"CMP "+i+"\n"+"%Chg "+i;
lp = new RelativeLayout.LayoutParams(new ViewGroup.MarginLayoutParams((width+30)/5, (height-10)/10));
btn.LayoutParameters=lp;
lp.SetMargins(leftMargin,topMargin, 0, 0);
main.AddView(btn);
}
String str="";
btn.Click += (sender, e) =>
{
str=btn.Text;
Toast.MakeText(this, "Selected="+str,ToastLength.Short).Show();
Console.WriteLine("Selected="+str);
};
但是这段代码的一个大问题是在循环结束时,btn 对象只有最后一个按钮的引用。
因此,如果按下最后一个按钮以外的任何按钮,则不会触发 button click 事件。
如何解决?
理想情况下,它应该返回点击按钮的文本。
另外,参考下面的截图,这里的默认按钮样式看起来不太好。所以我想把它改成精确的矩形而不是圆角矩形(默认的)。 对此有什么想法吗?
由于我对此很陌生,任何帮助将不胜感激!
编辑
在您的帮助下,我能够正确地创建和引用所有按钮。
但是如何将它们的样式设置为精确的矩形呢?
【问题讨论】:
标签: c# android button xamarin.android