我有一个Android应用程序,它从外部服务器检索一个名称和一个相应的ID(这可能是1个名称和ID组合或多个名称ID组合),这些都存储在HashMap<String, String>
中 - ID为键,Name为值。
我想要实现的是一个动态Spinner,它使用此HashMap中的'Names'填充自己,当用户选择其中一个名称时,我将设置设置为ID号。然后,此ID号将用于以后的服务器请求中。
我的问题是从HashMap实现这个自定义Spinner的最佳方法是什么,这样当选择该选项时,ID号就会设置在某处。这个ID号必须可以从几个活动中访问 - 微调器存在于几个不同的活动中......但是在每个屏幕上应该具有相同的效果。
非常感谢设计模式和伪代码。目前Spinner在两个不同的屏幕上,位于ActionBar下方的顶部,但显然代码在两个XML布局文件中。
干杯。
修改
在HashMap中设置名称和ID的代码:
// Returns a Map of blog name to blog ID associated with the authenticated user
public Map<String, String> extractBlogInfo(XMLDataExtracter blogData)
{
Log.d(TAG, "BlogOperations::extractBlogInfo()");
ArrayList<String> blogIDs = new ArrayList<String>();
ArrayList<String> blogNames = new ArrayList<String>();
Map<String, String> blogIDNamePairs = new HashMap<String, String>();
// Get ID and Names and store them in blogIDs and blogNames variables
if (blogIDs.size() == blogNames.size())
{
for(int i = 0; i < blogIDs.size(); i++)
{
blogIDNamePairs.put(blogIDs.get(i), blogNames.get(i));
}
}
else
{
// An error occured
Log.d(TAG,
"BlogOperations::extractBlogInfo() > An error occured - ID and Name array sizes do not match");
return null;
}
return blogIDNamePairs;
}