ItemClick и CustomAdapter, получение данных из listview

384
17 мая 2017, 05:09

Добрый день, проблема в том что не получается получить данные из listview, которые я получаю при парсинге, а именно координаты longitude и latitude и последующая передача их в другу активность в виде координат для точки, которая будет отображаться на карте. Алгоритм я представляю примерно такой:По этой позиции я должен из своего списка (который я передаешь в адаптер), получать объект (монумент) и уже из этого объекта доставать координаты или что-то еще.

Прошу помощи.

Код класса и представление данных

    public class items
    {
        [JsonProperty("response")]
        public List<categories> item { get; set; }
    }
    //Класс для листа item
    public class categories
    {
        [JsonProperty("id")]
        public int id { get; set; }
        [JsonProperty("name")]
        public string name { get; set; }
        [JsonProperty("shortDesc")]
        public string shortDesc { get; set; }
        [JsonProperty("longDesc")]
        public string longDesc { get; set; }
        [JsonProperty("longitude")]
        public double? longitude { get; set; }
        [JsonProperty("latitude")]
        public double? latitude { get; set; }
        [JsonProperty("likes")]
        public int likes { get; set; }
    }
    //Адаптер для вывода нужной информации
    public class HomeScreenAdapter : BaseAdapter<categories>
    {
        List<categories> categories = new List<categories>();
        Activity context;
        public HomeScreenAdapter(Activity context, List<categories> categories)
            : base()
        {
            this.context = context;
            this.categories = categories;
        }
        public override long GetItemId(int position)
        {
            return position;
        }
        public override categories this[int position]
        {
            get { return categories[position]; }
        }
        public override int Count
        {
            get { return categories.Count; }
        }
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var item = categories[position];
            View view = convertView;
            if (view == null) // no view to re-use, create new
                view = context.LayoutInflater.Inflate(Resource.Layout.MonumentView, null);
            //view.FindViewById<TextView>(Resource.Id.Text1).Text = item.id.ToString();
            view.FindViewById<TextView>(Resource.Id.Text2).Text = item.name;
            view.FindViewById<TextView>(Resource.Id.Text3).Text = item.shortDesc;
            //view.FindViewById<TextView>(Resource.Id.Text4).Text = item.longitude.ToString();
            //view.FindViewById<TextView>(Resource.Id.Text5).Text = item.latitude.ToString();
            //view.FindViewById<ImageView>(Resource.Id.Image).SetImageResource(item.ImageResourceId);
            return view;
        }
    }

Сам момент клика и получения данных

        JsonValue json = await GetCategories(url);
        var r = json.ToString(); // конвертация в строку
        Console.WriteLine(r); //вывод в консоль результата
        var ready = JsonConvert.DeserializeObject<List<categories>>(r); //десериализация объекта с использованием класса
        Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        Console.WriteLine("item {0}, Всего {1}", ready.Count, ready);
        lv2 = FindViewById<ListView>(Resource.Id.List1); // 
        lv2.Adapter = new HomeScreenAdapter(this, ready); //вывод готовой информации
        //Метод по клику на listview
        lv2.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) =>
        {
            Console.WriteLine("!!!"+ e.Position );
            Console.WriteLine("!!!!" + e.Position + "!!!!");
        };
READ ALSO
DataGridView сортировка в заданном промежутке

DataGridView сортировка в заданном промежутке

Привет, не могу понять как сделать фильтрацию в промежутке: имеются 2 textBox'а, в них выставляется максимальное и минимальное значение (цена)...

341
Ошибка входа пользователя

Ошибка входа пользователя

Создаю проект в Visual Studio 2010 ASPNET MVC 2 Empty Web Application

278
Замена всех прописных букв на строчные, считывание и сохранение текстового файла [требует правки]

Замена всех прописных букв на строчные, считывание и сохранение текстового файла [требует правки]

Проблема состоит в том, что я особо не разбираюсь в данном языке программирования, но мне надо срочно решить данную задачу: Надо считать содержимое...

483
C# UDP сокет - работа в интернет

C# UDP сокет - работа в интернет

Здравствуйте! Хочу написать клиент сервер на C# используя UDP

309