使用C# + Xamarin开发Android应用-- 动态添加控件
程序员文章站
2022-04-30 20:27:43
...
使用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 CURL访问HTTPS使用详解
下一篇: 推荐五款优秀的PHP代码重构工具_PHP
推荐阅读
-
android应用开发之spinner控件的简单使用
-
Android开发中button按钮的使用及动态添加组件方法示例
-
C#-Xamarin的Android项目开发(二)——控件应用
-
Android使用绝对布局AbsoluteLayout动态添加控件
-
Android开发中button按钮的使用及动态添加组件方法示例
-
C#开发Android应用实战——使用Mono for Android和.NET/C#
-
使用C# + Xamarin开发Android 应用 -- Datetime Picker
-
使用C# + Xamarin开发Android应用-- 动态添加控件
-
使用C# + Xamarin开发Android应用-- 动态添加控件
-
C#-Xamarin的Android项目开发(二)——控件应用