Ejemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);

            var recyclerView = FindViewById <RecyclerView>(Resource.Id.recyclerView1);

            var layoutManager = new LinearLayoutManager(this);

            recyclerView.SetLayoutManager(layoutManager);

            var input = Assets.Open("Countries.json");

            using (var streamReader = new StreamReader(input))
            {
                var content = streamReader.ReadToEnd();
                countries = JsonConvert.DeserializeObject <List <Country> >(content)
                            .GroupBy(x => x.Name.First())
                            .Select(x => new List <object>()
                {
                    x.Key.ToString()
                }.Union(x))
                            .SelectMany(x => x)
                            .ToList();

                adapter = new CountryAdapter(countries);
            }

            recyclerView.SetAdapter(adapter);
            adapter.NotifyDataSetChanged();

            var searchView = FindViewById <SearchView>(Resource.Id.sv_country);

            searchView.QueryTextChange += delegate
            {
                adapter.Countries = countries.Where(x => x is Country ? ((Country)x).Name.Contains(searchView.Query) : x.ToString().Contains(searchView.Query))
                                    .ToList <object>();;
                recyclerView.SetAdapter(adapter);
            };
        }