Суть данной части приложения: Есть два спиннера. Первый спиннер показывает тип продукта (например овощи, фрукты) и при его выборе другой список сужается до тех вариантов, которые выбраны в первом спиннере. Проект в Visual Studio на шарпе в Xamarin.
class ProductCollection
{
int _selectedTypes;
public List<Product> GetProduct(int selectedTypes)
{
_selectedTypes = selectedTypes;
List<Product> products = new List<Product>();
Product product;
if (_selectedTypes==1)
{
product = new Product();
product.Name = "Banana";
product.Id =1;
products.Add(product);
product = new Product();
product.Name = "Apple";
product.Id =2;
products.Add(product);
} else
{ product = new Product();
product.Name = "Onion";
product.Id =10;
products.Add(product);
}
return products;
}}
Код из MainActivity:
public class MainActivity : Activity
{ List<Product> products;
List<ProductType> producttypes;
public int selectedTypes{ get; set; }
ProductCollection productCollection = new ProductCollection();
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView (Resource.Layout.Main);
products = productCollection.GetProduct(selectedTypes);
adapter = new CustomAdapter(this, products);
adapter1 = new CustomAdapter(this, producttypes);
}
private void SpTypes_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
selectedTypes = producttypes[e.Position].Id;
}
private void SpProducts_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
textview11.SetText(products[e.Position].Name, TextView.BufferType.Normal);}
(Привязку XAML и обьявления адатеров пропустил так как не относится к этой ситуации)
Должно работать так, что требуемое свойство для метода GetProduct присваивается через конструктор из первого спиннера и фильтрует список выводимый во втором спиннере. На самом деле свойству selectedTypes ничего не присваисвается, оно остается нулевым и на вывод идет только блок "else". Где ошибка и как правильно сделать этот импровизованный фильтр? Или есть другие варианты?
Спасибо
P.S. Пробовал объявить коллекцию и второй спиннер в событии ItemSelected второго спиннера (чтобы обновлялась коллекция), но тоже не работало
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости