使用C# + Xamarin開發Android應用-- 動態添加控制項

來源:互聯網
上載者:User
使用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應用-- 動態添加控制項的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.