旗下导航:搜·么
当前位置:网站首页 > .Net教程 > 正文

运用C# + Xamarin开辟Android运用-- 动态增加控件【C#.Net教程】,C#,Xamarin,动态添加控件

作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:85评论:0


导读:运用C#+Xamarin开辟Android运用--动态增加控件publicclassMyOrders:Activity{p...
运用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运用-- 动态增加控件的内容,更多相关内容请关注ki4网(www.ki4.cn)!

标签:C#Xamarin动态添加控件


欢迎 发表评论: