ExpandableListView с несколькими макетами

Я прошу прощения за мой английский, но переведен с помощью Google. Мне нужна помощь для моего приложения, я использую ExpandableListView с 3 различными макетами, но у меня возникают проблемы, которые я не нашел ответа на различных форумах. В основном, если метод getChildView () проверяет, является ли convertView нулевым, я компенсирую все макеты или даже повторяю их несколько раз. Если я не выполню эту проверку, вы увидите макет как следует, но значения в EditText будут стерты, если я нажму на другую группу или вы просмотрите список до тех пор, пока не будет отображен макет с EditText. Я надеюсь, что я был достаточно ясен, и я надеюсь, что ответы одинаково ясны, к сожалению, я был во всем Интернете, но не мог найти ответ, который искал. Заранее спасибо тем, кто мне поможет

    public View getChildView(int groupPosition, final int childPosition,
                    boolean isLastChild, View convertView, ViewGroup parent) {

            View view = convertView;
            ViewHolder holder;

            if (view == null) {
                    holder = new ViewHolder();

                    if (groupPosition == 0) {
                            convertView = infalInflater.inflate(R.layout.adv_item, null);
                            holder.btn1 = (ImageButton) convertView
                                            .findViewById(R.id.button1);
                            holder.btn2 = (ImageButton) convertView
                                            .findViewById(R.id.button2);
                            holder.btn3 = (ImageButton) convertVie,w
                                            .findViewById(R.id.button3);
                            holder.et1 = (EditText) convertView.findViewById(R.id.editText1);
                            holder.et2 = (EditText) convertView.findViewById(R.id.editText2);
                            holder.et3 = (EditText) convertView.findViewById(R.id.editText3);
                            holder.et4 = (EditText) convertView.findViewById(R.id.editText4);
                            holder.et5 = (EditText) convertView.findViewById(R.id.editText5);
                            holder.et6 = (EditText) convertView.findViewById(R.id.editText6);
                            holder.check_sc1 = (CheckBox) convertView
                                            .findViewById(R.id.item_check_sc1);
                            holder.check_sc2 = (CheckBox) convertView
                                            .findViewById(R.id.item_check_sc2);
                            holder.check_sc3 = (CheckBox) convertView
                                            .findViewById(R.id.item_check_sc3);
                            holder.check_oo = (CheckBox) convertView
                                            .findViewById(R.id.item_check_oo);
                            convertView.setTag(holder);
                    }
                    if (groupPosition == 1) {
                            convertView = infalInflater.inflate(R.layout.visual_item, null);
                    }
                    if (groupPosition == 2) {
                            convertView = infalInflater.inflate(R.layout.routes_item, null);
                    }
            } else {
                    holder = (ViewHolder) convertView.getTag();
            }
            return convertView;
    }

Ответы на вопрос(1)

Ваш ответ на вопрос