对于我的 Android 应用程序,我有微调器,提供产品类别列表供用户选择
以下讨论:Corelating items from two arraylists in Java
我按照以下方式创建了一个类别对象:
public class ItemCategory {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我将所有 ItemCategories 存储在 LinkedHashSet 中,并将此 LinkedHashSet 传递给需要显示带有类别的微调器的所有 Activity 。
现在的问题是,如何使用这些 ItemCategory 对象的名称填充微调器,然后在进行选择时,需要将 int newItemCategoryID 设置为同一 ItemCategory 对象中的相应 ID?
这就是我填充微调器的方式:
public class LoadSpinnerData {
public static void loadSpinnerData(Context context, ArrayList<String> array, Spinner spinner) {
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(context,
R.drawable.simple_spinner_item, array);
// Drop down layout style - list view with radio button
dataAdapter
.setDropDownViewResource(R.drawable.simple_spinner_dropdown_item);
// Attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}
}
这就是我将 ArrayList 传递给此微调器的方式:
categoriesInfo = new GetCategoriesFromDB(dbTools).execute().get(4000, TimeUnit.MILLISECONDS);
ArrayList<String> categoryNamesArray = new ArrayList<String>();
for(ItemCategory itemCategory : categoriesInfo) {
categoryNamesArray.add(itemCategory.getName());
}
LoadSpinnerData.loadSpinnerData(this, categoryNamesArray, sAddAnItemCategory);
问题是我在这里做什么:
sAddAnItemCategory.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
newItemCategoryID = ????
}
});
最佳答案
要检索位置的元素,您可以使用arg0.getItemAtPosition(arg2)
。
根据您的具体情况,它将是:
ItemCategory item = (ItemCategory) arg0.getItemAtPosition(arg2);
newItemCategoryID = item.getId();
编辑:
public class LoadSpinnerData {
public static void loadSpinnerData(Context context, ArrayList<ItemCategory> array, Spinner spinner) {
// Creating adapter for spinner
ArrayAdapter<ItemCategory> dataAdapter = new ArrayAdapter<ItemCategory>(context,
R.drawable.simple_spinner_item, array);
// Drop down layout style - list view with radio button
dataAdapter
.setDropDownViewResource(R.drawable.simple_spinner_dropdown_item);
// Attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}
}
和
categoriesInfo = new GetCategoriesFromDB(dbTools).execute().get(4000, TimeUnit.MILLISECONDS);
LoadSpinnerData.loadSpinnerData(this, categoriesInfo, sAddAnItemCategory);
关于java - Android 中的 LinkedHashSet<ItemCategory> 和 Spinner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21601441/