Autore Topic: ExpandableListView con layout multipli  (Letto 308 volte)

Offline AndrewDev

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Mac OS X 10.9.5
ExpandableListView con layout multipli
« il: 16 Febbraio 2015, 18:27:12 CET »
0
Salve a tutti ho bisogno di aiuto per la mia applicazione,
sto usando un ExpandableListView con 3 diversi layout ma sto riscontrando problemi di cui non ho trovato risposta sui vari forum. Praticamente se nel metodo getChildView() controllo se il convertView è nullo, mi sfalsa tutti i layout o addirittura me li ripete più volte. Se invece non effettuo quel controllo, il layout si vede come dovrebbe, ma i valori nelle EditText vengono cancellate se clicco su un altro gruppo o se scorro la lista fino a non far vedere più il layout con le EditText.
Spero di essere stato abbastanza chiaro e spero che le risposte siano altrettanto chiare, purtroppo ho girato tutto internet ma non ho trovato la risposta che cercavo.
Grazie in anticipo a chi mi aiuterà  :-)


Codice (Java): [Seleziona]
        @Override
        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) convertView
                                                .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;
        }