我正在水平RecyclerView
中显示复选框列表。
它显示{"Rd" , "Gr" , "Yl"}
等值,但当用户选择任何此值时,它应返回{"RED" , "GREEN" , "YELLOW")
如何绑定显示和返回不同的这两个值?
我正在从R.string-arry
我创建了另一个实际值的字符串数组,当用户选中checkboxes
中的任何一个时,我得到该ID并将其替换为实际值。
例如如果用户选择了“Gr”,我得到ID = 1,然后用实际的字符串数组替换
但这仅适用于代码颜色和原始颜色的顺序。在我的应用程序中,我有时使用红色,绿色,蓝色或有时使用绿色,黄色,蓝色。所以,这对我没有帮助。
答案 0 :(得分:2)
根据我的理解,你需要GR和Green,RD和Red等之间的映射。
您可以尝试使用Hashmap。
LPARAM lParam;
COPYDATASTRUCT* pcds = (COPYDATASTRUCT*)lParam;
if (WM_COPYDATA)
{
LPCTSTR lpszString = (LPCTSTR)(pcds->lpData);
printf("%s\n", lpszString);
}
else return -1;
return 0; // success
然后您可以检索颜色代码的相应值:
HashMap<String,String> colourMap = new HashMap<>();
colourMap.put("GR","GREEN");
colourMap.put("RD","RED");
答案 1 :(得分:0)
您可以使用HashMap
将两个arrays
绑定为键值对
public HashMap<String,String> bindColors() {
HashMap<String,String> map = new HashMap<>();
int length = orginalColors.length;
for (int i = 0; i < length; i++) {
map.put(orginalColors[i], codeColors[i]);
}
return map;
}
用于获取代码中的颜色。
HashMap<String, String> keyPair = bindColors();
orginalColorsNewArray = keyPair.keySet().toArray(new String[keyPair.keySet().size()]);
codeColorsNewArray = keyPair.values().toArray(new String[keyPair.values().size()]);
或使用.get()
功能
keyPair.get("YELLOW")
现在,您可以更轻松地通过id/position
希望这会有所帮助。