2016-07-19 2 views
0

Я показываю список флажков в горизонтальном RecyclerView.RecyclerView, который отображает и возвращает разные значения

Это отображать значения, такие как {"Rd" , "Gr" , "Yl"} но когда пользователь выбирает какой-либо из этого значения он должен вернуть {"RED" , "GREEN" , "YELLOW")

Как я могу связать эти два значения, которые показывают, и вернуться по-разному?

Я принимаю значение отображения из R.string-arry

Я создал еще одну строку-массив фактических значений, и когда пользователь проверил любой из checkboxes я получаю этот идентификатор и заменить его с фактическими значениями.

См., Например, Если пользователь выбрал «Gr», я получаю ID = 1, а затем заменяется фактическим строковым массивом

Но это работает только в том случае, когда цвет кода и исходный цвет в порядке. В моем приложении я иногда использую красный, зеленый, синий или иногда зеленый, желтый, синий. Значит, это не поможет мне.

+0

обеспечить 'код JAVA'. Этот вопрос звучит так: напишите этот код для меня. – xAqweRx

ответ

2

Из того, что я понял, что вам нужно отображение между GR и зеленый, RD и красный и т.д.

Вы можете попробовать использовать HashMap.

HashMap<String,String> colourMap = new HashMap<>(); 
colourMap.put("GR","GREEN"); 
colourMap.put("RD","RED"); 

И тогда вы можете получить соответствующее значение для вашего цветового кода:

String colour = colourMap.get("GR"); 
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

Надеется, что это помогает.

+0

Я пробовал это, но это работает только в том случае, если код и оригинальный цвет в порядке. В моем приложении я иногда использую красный, зеленый, синий или иногда зеленый, желтый, синий. Значит, это не поможет мне. –

+0

Разве оба массива перетасовываются или только один? @ShaishavJogani – Sanoop

+0

На самом деле существует много (> 10), которые отображают цветовые коды в случайном порядке в одном действии. Итак, было бы лучше, если бы я смог просто привязать фактические значения с кодом, вместо этого создав это, большое количество строковых массивов. –

Смежные вопросы