Quantcast
Channel: Recent Threads — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 204402

Custom Adapter Not populating Listview with data

$
0
0

I am trying to inflate a listview using custom adapter.Dta is coming from web service.When i am running the code using dummy data,the listview is populating.But i am unable to do it using web service.Because i am not able to populate the adapter using web service data. Following is my code for custom adapter:-

    namespace Example
    {
        public class CustomListAdapter : BaseAdapter<FacilitySiteEntity>
        {
            Activity context;
            public FacilitySearchCriteria FacilitySearchCriteria1{ get; set; }
            public List<FacilitySiteEntity> items;
            public CustomListAdapter(Activity context, IEnumerable<FacilitySiteEntity> newfacility)
                : base()
            {
                this.context = context;
                            this.items = newfacility.ToList();

            }

            public override int Count
            {
                get { return items.Count; }
            }

            public override Java.Lang.Object GetItem(int position)
            {
                return position;
            }

            public override long GetItemId(int position)
            {
                return position;
            }

            public override FacilitySiteEntity this[int position]
            {
                get { return items[position]; }

            }

            public override View GetView(int position, View convertView, ViewGroup parent)
            {
                BALFacility obb = new BALFacility ();

                var facilities = obb.FacilityResult (this.FacilitySearchCriteria1);


                var view = convertView ?? context.LayoutInflater.Inflate(Resource.Layout.FacilityInflate, null);
                var itemm = items[position];
                if (facilities != null) {
                    int n = facilities.Count;
                    if (facilities.Count >= 1) {

                        for(int i =0;i<n;i++)
                        {

                            var one = view.FindViewById<TextView> (Resource.Id.txtFacilityNameTitle);
                            var two = view.FindViewById<TextView> (Resource.Id.txtFacilityLine2);
                            var three = view.FindViewById<TextView> (Resource.Id.txtFacilityLine3);


                            one.Text = itemm.FacilityName;
                            two.Text = itemm.Address1 + "," + itemm.Address2;
                            three.Text = itemm.City + "," + itemm.PostalCode;


                        }

                    }

                }

                return view;
            }

            public FacilitySiteEntity GetItemAtPosition(int position)
            {
                return items[position];
            }
        }
    }

My Activity is as follows:-

    namespace Example
            {


    [Activity (Label = "FacilityResultActivity",ScreenOrientation = ScreenOrientation.Portrait)]            
            public class FacilityResultActivity : Activity
            {
                public const string APISiteName="http://mysamplesite.com/";

            //public List<NewFacilityEntity> ent;
            public FacilitySearchCriteria FacilitySearchCriteria1{ get; set; }

            //public CustomListAdapter listadp;

            protected override void OnCreate (Bundle bundle)
            {
                //NewCustomAdapter listadapter;
                base.OnCreate (bundle);
                var sample = new List<FacilitySiteEntity> ();
                var listadpt = new CustomListAdapter (this,sample);
                SetContentView (Resource.Layout.SearchResultOfFacilities);
                var something = new List<FacilitySiteEntity>
                    {
    new FacilitySiteEntity{FacilityName =FacilitySearchCriteria1.SiteName, City = FacilitySearchCriteria1.City},

    //above is what i am trying to do,but i am not able to do.

    //Following are dummy data, and i am able to populate the listview using following, but not using the above lines

    new FacilitySiteEntity {FacilityName = "ABC", Address1 = "jgjfhgfd"},
                        new FacilitySiteEntity {FacilityName = "SCSC", Address1 ="serres"},
                        new FacilitySiteEntity {FacilityName = "SPSP", Address1 = "tryrytutu"}


                var cstm = new CustomListAdapter (this, something);
                cstm.FacilitySearchCriteria1 = new FacilitySearchCriteria ();

                var listview = (ListView)FindViewById (Resource.Id.listView);
                listview.Adapter = cstm;

            }
        }
    }

Following are the classes with properties which i am using:-

    public class FacilitySiteEntity
        {
            public int FacilityID { get; set; }
            public int GeoAreaID { get; set; }
            public int ClientID { get; set; }
            public string FacilityName { get; set; }
            public string Address1 { get; set; }
            public string Address2 { get; set; }
            public string City { get; set; }
            public int StateID { get; set; }
            public int CountryID { get; set; }
            public string PostalCode { get; set; }
            public decimal Longitude { get; set; }
            public decimal Latitude { get; set; }
            public bool Active { get; set; }
            public string ContactNumber { get; set; }
            public string GeoAreaName { get; set; }
            public string Country { get; set; }
            public string State { get; set; }
            public string StateCode { get; set; }
            public string ContactName { get; set; }
            public int SurveyCloneID{get;set;}

        }



    public class FacilitySearchCriteria
        {
            public string StateId{ get; set;}
            public string City{ get; set;}
            public string SiteId{ get; set;}
            public string SiteName{ get; set;}
        }

Following is the BAL class with method calls to get data from web services:-

     public class BALFacility
            {   

        public List<FacilitySiteEntity> FacilityResult(FacilitySearchCriteria objSearchCriteria)
                {
                    CommonMethod obj = new CommonMethod ();
                    string responseFromServer=  obj.GetServiceData ("SearchFacility?Token=" + "&StateID="+ objSearchCriteria.StateId +"&City="+ objSearchCriteria.City +"&SiteID="+ objSearchCriteria.SiteId +"&SiteName="+ objSearchCriteria.SiteName +"&PortalAliasID=" + ConstantValues.SelectedPortalAliasID.ToString ());
                    var facilities = Newtonsoft.Json.JsonConvert.DeserializeObject<List<FacilitySiteEntity>> (responseFromServer);

                    return facilities;
                }

        //Other web service methods...
        }

Viewing all articles
Browse latest Browse all 204402

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>