Попытка перебрать вложенный список в recyclerViewAdapter - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь перебрать Вложенный список в Android Recycler ViewAdapter.

public class ParentObject{
String mTitle;
List<ChildObject> mChildsList;
}
    public ParentObject(String title, List<ChildObject> childsList) {
    this.mTitle = title;
    this.mChildsList = childsList;
}

public String getmTitle() {
    return mTitle;
}

public List<ChildObject> getmChildsList() {
    return mChildsList;
}

Это мой ParentObject с другим ChildObject. Теперь я пытаюсь сохранить данные в этой модели объекта следующим образом.

//JSON PARSING

List<ParentObject> parentObjectList = new ArrayList<>();

if (data.length() > 0) {
    for (int i = 0; i < data.length(); i++) {

        JSONObject pObject = data.getJSONObject(i);

        String title = pObject.getString("Title");

        JSONArray childData = new 
            JSONArray(pObject.getString("childData"));

                List<ChildObject> childObjectList = null;

                if (childData.length() > 0) {
                    childObjectList = new ArrayList<>();

                    JSONObject child = childData.getJSONObject(i);

                    ChildObject childObject = new 
                       ChildObject(child.getString("child_title"));
                       // and other keyvalues

                    childObjectList.add(childObject);
                }

                    ParentObject parentObject = new ParentObject(
                            title,
                            childObjectList
                    );
                    parentObjectList.add(parentObject);
    }
}

Теперь все данные JSON правильно хранятся в списках, и у меня есть Список в списке (Parent_LIST (title, Child_LIST))

вот мой адаптер

public class ParentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

private List<ParentObject> parentList;
private Context activity;

public ParentAdapter(List<parentList> pList, Context activity) {
    this.parentList = pList;
    this.activity = activity;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    if (viewType == 0) {
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.parent_layout, parent, false);
        return new ViewHolder2(v);
    } else {
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.child_layout, parent, false);

        return new ViewHolder(v);
    }
}


@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
    final ParentObject pObject = parentList.get(position);

    switch (holder.getItemViewType()) {
        case 0:
            ViewHolder2 viewHolder2 = (ViewHolder2) holder;
            viewHolder2.Parent_titleTV.setText(pObject.get());
            break;
        default:
            ViewHolder viewHolder = (ViewHolder) holder;
            final ChildObject postO = pObject.getmChildsList().get(position);
            viewHolder.Child_Title.setText(postO.getP_title());

}

@Override
public int getItemViewType(int position) {

    return position;
}

@Override
public int getItemCount() {
    return parentList.size();
}


class ViewHolder extends RecyclerView.ViewHolder {

    TextView chilld_Title;
    CardView _cardView;

    ViewHolder(View itemView) {

        super(itemView);
        chilld_Title = itemView.findViewById(R.id.postTitle);
        _cardView = itemView.findViewById(R.id.postCard);
    }
}

class ViewHolder2 extends RecyclerView.ViewHolder {

    TextView Parent_titleTV;

    ViewHolder2(View itemView) {

        super(itemView);
        Parent_titleTV = itemView.findViewById(R.id.title);
    }
}
}

Все, что я вижу в своем приложении, это только заголовок с индексом 0, других дочерних данных нет.

Ожидаемый результат [PARENT_TITLE_AT_0] - [CHILD_TITLE_AT_0] - [CHILD_TITLE_AT_1] - [CHILD_TITLE_AT_2] - [CHILD_TITLE_AT_3] [PARENT_TITLE_AT_1] - [CHILD_TITLE_AT_0] - [CHILD_TITLE_AT_1] - [CHILD_TITLE_AT_2] - [CHILD_TITLE_AT_3] . . . [PARENT_TITLE_AT_n] - [CHILD_TITLE_AT_0] - [CHILD_TITLE_AT_1] - [CHILD_TITLE_AT_2] - [CHILD_TITLE_AT_3]

Фактический вывод

[PARENT_TITLE_AT_0] (parent title at 0 Index)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...