Rahul Ramakrishnan Ответов: 0

Можете заранее выбрать товар счетчик для редактирования значений


У меня есть 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 иногда равна нулю. Даже если список досок равен нулю, имена досок отображаются в счетчике досок.

0 Ответов