Heim > Backend-Entwicklung > C#.Net-Tutorial > Entwickeln Sie Android-Anwendungen mit C# + Xamarin – fügen Sie dynamisch Steuerelemente hinzu

Entwickeln Sie Android-Anwendungen mit C# + Xamarin – fügen Sie dynamisch Steuerelemente hinzu

黄舟
Freigeben: 2017-03-01 10:30:45
Original
3498 Leute haben es durchsucht

Verwenden Sie C# + Anwendungen – Fügen Sie den Inhalt des Steuerelements dynamisch hinzu. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!

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;
        }
    }
Nach dem Login kopieren

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;
        }
    }
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage