Заполните счетчик списком - PullRequest
0 голосов
/ 20 декабря 2018

У меня проблема с заполнением моего счетчика списком.

Я загрузил json по URL-ссылке и проанализировал его, чтобы я мог поместить его в список.Пока все хорошо ... Но теперь у меня есть список, и я не могу найти в интернете ничего о том, как заполнить счетчик списком.Список состоит из 4 столбцов: Id, Name, Age, Gender и 28 строк.Теперь я хочу напечатать строки в счетчике с 4 столбцами, напечатанными с -, чтобы отделить слова, например, так: "4 - Джон - 46 - Мужчина".Как я могу это сделать?

Вот часть кода, где я создаю список из URL:

Spinner CustomerSpinner = FindViewById<Spinner>(Resource.Id.CustomerSpinner);
//Startup WebClient
WebClient client = new WebClient();

//Define URL to download
string link = @"http://website.com/customers/getcustomers.php";

//Download json website content
string json = new WebClient().DownloadString(link);

//Parse json content
var jObject = JObject.Parse(json);

//Create Array from everything inside Node:"Customers"
var customerPropery = jObject["Customers"] as JArray;

//Create List to save Coin Data
customerList = new List<customer>();

//Find every value in Array: customerPropery 
foreach (var property in customerPropery )
{
    //Convert every value in Array to string
    var propertyList = JsonConvert.DeserializeObject<List<customer>>(property.ToString());

    //Add all strings to List
    customerList.AddRange(propertyList);
}

Может ли кто-нибудь помочь мне в дальнейшем?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

"В списке 4 столбца: Id, Name, Age, Gender и 28 строк."

A List не может иметь 4 столбца, поэтому это сбивает с толку.List - это коллекция типов.Возможно, ваш List имеет 28 элементов типа, который имеет 4 свойства: Id, Name, Age, Gender.Давайте назовем этот тип Customer, который может выглядеть примерно так:

public class Customer
{
    public int Id {get; set;}
    public string Name {get; set;}
    public int Age {get; set;}
    public string Gender {get; set;}
}

Если вышеприведенное верно, то у вас есть List<Customer>, который имеет 28 Customer элементов, давайте назовем его CustomerList, и вам нужно будет сделать что-то вроде этого:

var adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerDropDownItem);
foreach (Customer customer in CustomerList)
{
    adapter.Add($"{customer.Id} - {customer.Name} - {customer.Age} - {customer.Gender}");
}
CustomerSpinner.Adapter = adapter;

Обратите внимание, что лучше всего назначить CustomerSpinner.Adapter = adapter; после добавления всех клиентов в адаптер.Если вы назначите CustomerSpinner.Adapter = adapter; до добавления всех 28 клиентов в adapter, то вам нужно будет позвонить CustomerSpinner.Adapter.NotifyDataSetChanged(); после добавления клиентов в adapter, чтобы счетчик можно было обновлять новыми значениями.

0 голосов
/ 20 декабря 2018

Вы должны создать ArrayAdapter и прикрепить его к счетчику.Примерно так:

var adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerDropDownItem);
CustomerSpinner.Adapter = adapter;

foreach (var customer in customerList)
{
    adapter.Add(customer.ToString());  // format your string here
}

Пример (java): https://dzone.com/articles/populate-spinner-from-json-data

...