2017-02-09 5 views
0

У меня есть CardView, содержащий счетчик. Счетчик содержит номер от 0 до 5 для выбора пользователем. Каждый CardView имеет уникальный идентификатор, связанный с ним. Например, скажем, что теперь у меня две карты, карта A с идентификатором 1 и карта B с идентификатором 2. В зависимости от значения, выбранного из счетчика, я создам массив. Например, карта A имеет значение 3, а карта B имеет значение 2, последний массив будет выглядеть как [1,1,1,2,2], а если счетчик значения карты A изменен на 0, то массив будет обновлен до [2,2]. теперь я могу создать отделенный массив для каждой карты, но я не уверен, как добавить массивы вместе или обновить массивы на основе конечных значений в каждой блесныДобавить несколько значений, полученных от счетчика в CardView вместе

Что я сейчас:

@Override 
public void onBindViewHolder(ViewHolder holder, final int position) { 

    final ChooseServiceList chooseServiceList1 = chooseServiceList.get(position); 

    // Spinner Drop down elements 
    List<Integer> categories = new ArrayList<Integer>(); 
    categories.add(0); 
    categories.add(1); 
    categories.add(2); 
    categories.add(3); 
    categories.add(4); 
    categories.add(5); 

    ArrayAdapter<Integer> dataAdapter = new ArrayAdapter<Integer>(context, android.R.layout.simple_spinner_item, categories); 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    holder.spinnerServiceNum.setAdapter(dataAdapter); 

    holder.spinnerServiceNum.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      String item = adapterView.getItemAtPosition(i).toString(); 
      Integer serviceCount = Integer.parseInt(item);//spinner value 
      Integer serviceId = chooseServiceList1.getServiceId();//ID associated with card 
      List<Integer> list = new ArrayList<Integer>(); 
      for(int service = 1; service<=serviceCount; service++) { 
       list.add(serviceId); 
       if(service == serviceCount){ 
        //final numbers of each ID that should be add into array 
       } 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 
      //do nothing 
     } 
    }); 
} 

Теперь я могу распечатать отдельные массивы, например [1,1,1], [2,2], но как следует обновлять и комбинировать их после выбора счетчика? Я попытался поместить их в общие предпочтения, но это только сделает окончательный массив [2,2] общим предпочтением.

ответ

0

Сделайте окончательное определение списка и переместите его во внешний класс. Так удалите эту строку ...

List<Integer> list = new ArrayList<Integer>(); 

И вместо того, в верхней части вашего кода, написать ...

final ChooseServiceList chooseServiceList1 = chooseServiceList.get(position); 
final List<Integer> list = new ArrayList<Integer>(); 

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

  • Нет связанных вопросов^_^