gpt4 book ai didi

安卓微调器 : Get selected custom object

转载 作者:行者123 更新时间:2023-11-29 22:52:16 25 4
gpt4 key购买 nike

在这个简单的示例中,我将向您展示我通常如何获取微调器的选定项,其中填充了来自自定义类的项。

// Simple sample class
public class StringWithIndex
{
public string itemString;
public int itemIndex;

public StringWithIndex(string stringPart, int indexPart)
{
itemString = stringPart;
itemIndex = indexPart;
}

public override string ToString()
{
return itemString;
}
}

// Create sample list
List<StringWithIndex> spinnerItems = new List<StringWithIndex>();
spinnerItems.Add(new StringWithIndex("A", 1));
spinnerItems.Add(new StringWithIndex("B", 2));
spinnerItems.Add(new StringWithIndex("C", 3));

// Create Spinner
Spinner spinner = new Spinner(Context);
var spinnerAdapter = new ArrayAdapter<StringWithIndex>(Context, Android.Resource.Layout.SimpleSpinnerItem, spinnerItems);
spinner.Adapter = spinnerAdapter;

// Spinner Item selected
spinner.ItemSelected += (sender, e) =>
{
var pos = spinner.SelectedItemPosition;
var item = spinnerItems[pos];
// do something with item
};

我知道所选项目的位置并在用于所选项目的适配器的列表中搜索。

所以我的问题是,有没有办法直接访问对象,而无需在原始列表中搜索?例如,所选项目的类型转换不起作用

var itemString = (spinner.SelectedItem as StringWithIndex).itemString;

我现在不知道在没有列表的情况下访问项目的好处,但每次我实现微调器时我都会问自己这个问题。

编辑:我的想法是使用 SelectedItem。我知道有很多方法可以在任何类型的传递列表或来自适配器的覆盖方法中使用该位置。

最佳答案

So my question is, is there a way to access the object directly, without searching in the original list?

你可以试试这个:

Spinner spinner = new Spinner(Context);
var spinnerAdapter = new ArrayAdapter<StringWithIndex>(Context, Android.Resource.Layout.SimpleSpinnerItem, spinnerItems);
spinner.Adapter = spinnerAdapter;

// Spinner Item selected
spinner.ItemSelected += (sender, e) =>
{
var obj = e.Parent.SelectedItem;
var item = obj.GetType().GetProperty("Instance").GetValue(obj) as StringWithIndex;
var itemString = item .itemString;
}

关于安卓微调器 : Get selected custom object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57782165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com