android动态添加控件教程,使用C# + Xamarin开发Android应用-- 动态添加控件

使用C# + Xamarin开发Android应用-- 动态添加控件public class MyOrders : Activity

{

private DynamicControl _dynaControl;

public MyOrders()

{

_dynaControl = new DynamicControl();

}

protected override void OnCreate(Bundle bundle)

{

base.OnCreate(bundle);

try

{

SetContentView(Resource.Layout.MyOrders);

var layout = (TableLayout)FindViewById(Resource.Id.myorders_layout);

var header = AddHeader();

layout.AddView(header);

layout.AddView(AddPendingServiceItem("Service 1"));

layout.AddView(AddPendingServiceItem("Service 2"));

layout.AddView(AddPendingServiceItem("Service 3"));

layout.AddView(AddConfirmedServiceItem("Service 4"));

layout.AddView(AddConfirmedServiceItem("Service 5"));

layout.AddView(AddConfirmedServiceItem("Service 6"));

layout.AddView(AddConfirmedServiceItem("Service 7"));

}

catch (Exception ex)

{

this.ShowAlert(ex.Message);

}

}

public View AddHeader()

{

var header = new TableRow(this);

header.LayoutParameters = new TableLayout.LayoutParams(TableLayout.LayoutParams.FillParent,

TableLayout.LayoutParams.WrapContent);

header.AddView(_dynaControl.NewText(this, "Service"));

header.AddView(_dynaControl.NewText(this, "Status"));

header.AddView(_dynaControl.NewText(this, "Created At"));

header.AddView(_dynaControl.NewText(this, "Action"));

return header;

}

public View AddPendingServiceItem(string serviceName)

{

var tableRow = new TableRow(this);

tableRow.LayoutParameters = new TableLayout.LayoutParams(TableLayout.LayoutParams.FillParent,

TableLayout.LayoutParams.WrapContent);

tableRow.AddView(_dynaControl.NewText(this, string.Format("{0} ", serviceName)));

tableRow.AddView(_dynaControl.NewText(this, string.Format("{0} ", "Pending"), Color.OrangeRed));

tableRow.AddView(_dynaControl.NewText(this, string.Format("{0} ", "2015-5-19 \r\n14:20:33")));

tableRow.AddView(_dynaControl.AddButton(this, "Details"));

return tableRow;

}

public View AddConfirmedServiceItem(string serviceName)

{

var tableRow = new TableRow(this);

tableRow.AddView(_dynaControl.NewText(this, string.Format("{0} ", serviceName)));

tableRow.AddView(_dynaControl.NewText(this, string.Format("{0} ", "Confirmed"), Color.DarkGreen));

tableRow.AddView(_dynaControl.NewText(this, string.Format("{0}", "2015-5-19 \r\n 14:30:43")));

tableRow.AddView(_dynaControl.AddButton(this, "Rebook"));

tableRow.LayoutParameters = new TableLayout.LayoutParams(TableLayout.LayoutParams.FillParent,

TableLayout.LayoutParams.WrapContent);

return tableRow;

}

}

杈呭姪绫伙細public class DynamicControl

{

public Button AddButton(Context context, string text, EventHandler clickAction = null)

{

var btn = new Button(context);

btn.SetText(text, TextView.BufferType.Normal);

if (clickAction != null)

{

btn.Click += clickAction;

}

return btn;

}

public TextView NewText(Context context, string str, Color? color = null)

{

var text = new TextView(context);

if (color.HasValue)

{

text.SetTextColor(color.Value);

}

text.SetText(str, TextView.BufferType.Normal);

return text;

}

}

以上就是使用C# + Xamarin开发Android应用-- 动态添加控件的内容,更多相关内容请关注PHP中文网(www.php.cn)!

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值