Beispiel #1
0
        /// <summary>
        /// Gets the view for this position.
        /// </summary>
        /// <returns>The view.</returns>
        /// <param name="position">Position.</param>
        /// <param name="convertView">Convert view.</param>
        /// <param name="parent">Parent.</param>
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            // Try to reuse convertView if it's not  null, otherwise inflate it from our item layout
            // This gives us some performance gains by not always inflating a new view
            // This will sound familiar to MonoTouch developers with UITableViewCell.DequeueReusableCell()
            var view = (convertView ?? _ctrl.LayoutInflater.Inflate(Resource.Layout.GameMainScreenItem, parent, false)) as RelativeLayout;

            view.SetMinimumHeight(_ctrl.FindViewById <ListView>(Resource.Id.listView).Height % Count);

            string header;
            string items;
            object image;

            _owner.GetContentEntry(position, out header, out items, out image);

            using (var textHeader = view.FindViewById <TextView>(Resource.Id.textHeader)) {
                textHeader.SetText(header, TextView.BufferType.Normal);
            }

            using (var textItems = view.FindViewById <TextView>(Resource.Id.textItems)) {
                textItems.SetText(items, TextView.BufferType.Normal);
            }

            using (var imageIcon = view.FindViewById <ImageView>(Resource.Id.imageIcon)) {
                if (image != null)
                {
                    imageIcon.SetImageBitmap(null);
                    imageIcon.SetImageBitmap((Bitmap)image);
                }
            }

            // Finally return the view
            return(view);
        }
Beispiel #2
0
 void Refresh()
 {
     if (input == null)
     {
         // Normal dialog
         // TODO: HTML
         textDescription.Text    = messageBox.Text;              // Html.FromHtml(messageBox.HTML.Replace("&lt;BR&gt;", "<br>").Replace("<br>\n", "<br>").Replace("\n", "<br>"));
         textDescription.Gravity = Main.Prefs.TextAlignment.ToSystem();
         textDescription.SetTextSize(global::Android.Util.ComplexUnitType.Sp, (float)Main.Prefs.TextSize);
         if (messageBox.Image != null)
         {
             imageView.SetImageBitmap(null);
             using (Bitmap bm = ctrl.ConvertMediaToBitmap(messageBox.Image)) {
                 imageView.SetImageBitmap(null);
                 imageView.SetImageBitmap(bm);
             }
             imageView.Visibility = ViewStates.Visible;
         }
         else
         {
             imageView.Visibility = ViewStates.Gone;
         }
         if (!String.IsNullOrEmpty(messageBox.FirstButtonLabel))
         {
             btnView1.Visibility    = ViewStates.Visible;
             btnView1.Text          = messageBox.FirstButtonLabel;
             btnView1.LayoutChange += (object sender, View.LayoutChangeEventArgs e) => SetTextScale(btnView1);
         }
         else
         {
             btnView1.Visibility = ViewStates.Gone;
         }
         if (!String.IsNullOrEmpty(messageBox.SecondButtonLabel))
         {
             btnView2.Visibility    = ViewStates.Visible;
             btnView2.Text          = messageBox.SecondButtonLabel;
             btnView2.LayoutChange += (object sender, View.LayoutChangeEventArgs e) => SetTextScale(btnView2);
         }
         else
         {
             btnView2.Visibility = ViewStates.Gone;
         }
     }
     else
     {
         // TODO: HTML
         textDescription.Text    = input.Text;              // Html.FromHtml(input.HTML.Replace("&lt;BR&gt;", "<br>").Replace("<br>\n", "<br>").Replace("\n", "<br>"));
         textDescription.Gravity = Main.Prefs.TextAlignment.ToSystem();
         textDescription.SetTextSize(global::Android.Util.ComplexUnitType.Sp, (float)Main.Prefs.TextSize);
         if (input.Image != null)
         {
             using (Bitmap bm = ctrl.ConvertMediaToBitmap(input.Image)) {
                 imageView.SetImageBitmap(bm);
             }
             imageView.Visibility = ViewStates.Visible;
         }
         else
         {
             imageView.Visibility = ViewStates.Gone;
         }
         if (input.InputType == InputType.MultipleChoice)
         {
             // Multiple choice dialog
             Spinner spinner = ctrl.FindViewById <Spinner> (Resource.Id.spinnerMulti);
             spinner.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs> (OnSpinnerItemSelected);
             ArrayAdapter <string> adapter = new ArrayAdapter <string>(this.Activity, Android.Resource.Layout.SimpleSpinnerItem, input.Choices.ToArray());
             adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
             spinner.Adapter = adapter;
         }
         else
         {
             // Input dialog
             // ToDo: Clear text field editInput
             if (Main.Prefs.InputFocus)
             {
                 editInput.RequestFocus();
                 ((InputMethodManager)ctrl.GetSystemService(Context.InputMethodService)).ShowSoftInput(editInput, ShowFlags.Implicit);
             }
         }
     }
 }