Можете заранее выбрать товар счетчик для редактирования значений
У меня есть 3 блесны для заполнения доски, класса и предмета. При выборе доски фильтруются классы, при выборе класса фильтруются предметы. У меня есть recyclerview, который содержит список элементов, полученных из веб-службы. При щелчке любого элемента списка пользователь переходит на экран для редактирования названий доски, класса и предмета. Для этого мне нужно предварительно выбрать элементы в прядильщике, который представляет значения в recyclerview.
Я могу заполнить счетчик нормально, но не могу предварительно выбрать элемент
Что я уже пробовал:
Этот метод заполняет доску прядильщика
List<PickListItems> boardList, showclassList, subjectList; boardList = WebServiceResponse.spinnerItems("PopulateMultiListInfoResult", "ID", "NAME", response); boardList.add(0, new PickListItems("-1", "Select Board")); cboBoard.setAdapter(new ArrayAdapter<> (SubjectManagementListInfo.this, android.R.layout.simple_list_item_1, boardList));
Служебный метод для вызова службы REST и возврата списка в качестве результата.
public static List<PickListItems> spinnerItems(String arrayName, String id, String name, String response) { List<PickListItems> pickItems = new ArrayList<>(); try { JSONObject obj = new JSONObject(response); final JSONArray jsonArray = obj.getJSONArray(arrayName); for (int i = 0; i < jsonArray.length(); i++) { JSONObject user = jsonArray.getJSONObject(i); pickItems.add(new PickListItems(user.getString(id), user.getString(name))); } } catch ( JSONException e) { e.printStackTrace(); } return pickItems; }
public class PickListItems { private String id; private String name; public PickListItems(){ } public PickListItems(String id, String name) { this.id = id; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @NonNull @Override public String toString() { return name; } @Override public boolean equals(Object obj) { if (obj instanceof PickListItems) { PickListItems c = (PickListItems) obj; return c.getName().equals(name) && c.getId().equals(id); } return false; } }
этот метод пытается предварительно выбрать имя платы для редактирования
if (boardList != null) { PickListItems itemIndex = new PickListItems(jsonObject1.getString("ACADEMICS_BOARD_ID"), jsonObject1.getString("ACADEMICS_BOARD")); int objIndex = boardList.indexOf(itemIndex); cboBoard.setSelection(objIndex, false); }
При использовании этого способа название доски иногда предварительно выбирается в спиннере. При отладке я обнаружил, что переменная boardList иногда равна нулю. Даже если список досок равен нулю, имена досок отображаются в счетчике досок.