Problema con un bucle

5 views
Skip to first unread message

Diego Tomico

unread,
Nov 9, 2016, 5:24:36 AM11/9/16
to desarrolladores-android
Buenos dias,
Tengo un problema. En un software que estoy desarrollando. añado dinamicamente TextViews con un bucle for.
Y al intentar pasar ese array con intent lo agrego a un arraylist. Pero al volver a recorrer el array. El primer valor me lo añade pero el segundo ya me aparece como null. Pongo el codigo a ver si alguien me puede ayudar.

Este es el metodo que al pulsar un boton añade dinamicamente textviews

private void añadirIncidencia(){
        contadorIncis=contadorIncis+1;
        int i;
        incis=new TextView[contadorIncis];
        horasTrab=new EditText[contadorIncis];
        inci=SpinnerIncidencias.getSelectedItem().toString();
        incisString=new String[contadorIncis];
        for (i=0;i<1;i++){
            final ArrayList<String> ArrayTiposTrabajos=new ArrayList<String>();
            ArrayTiposTrabajos.add("Normal");
            ArrayTiposTrabajos.add("Urgente");
            ArrayTiposTrabajos.add("Inmediato");
            final Spinner spinnerTrabajos=new Spinner(this);
            ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, ArrayTiposTrabajos);
            spinnerTrabajos.setAdapter(spinnerArrayAdapter);
            //Crea dinamicamente una fila del tableLayout que existe en la parte 3 del parte de trabajo
            incis[i]=new TextView(this);
            incis[i].setText(incidenciasLista.get(i).getINC_referencia()+" "+inci);
            TextView text=new TextView(this);
            text.setText("Horas Trabajadas:");
            TextView text2=new TextView(this);
            text2.setText("Tipo de trabajo: ");
            horasTrab[i]=new EditText(this);
            horasTrab[i].setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
            final int finalI = i;
            horasTrab[i].addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 
                }
 
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
 
                }
 
                @Override
                public void afterTextChanged(Editable s) {
                   // datoHora=horasTrab[finalI].getText().toString();
                    //horastrabajString.add(datoHora);
                }
            });
            layoutIncidencias.addView(incis[i]);
            layoutIncidencias.addView(text);
            layoutIncidencias.addView(horasTrab[i]);
            layoutIncidencias.addView(text2);
            layoutIncidencias.addView(spinnerTrabajos);
            //datoInci=incis[i].getText().toString();
            incisString[i]=incis[i].getText().toString();
 
        }
 
 
    }

Aqui el bucle for que hago al pasar por intent los datos
for(int i=0;i<incisString.length;i++){
            datoInci=incisString[i].toString();
            trabajString.add(datoInci);
        }

Recorre bien el primer registro pero el segundo indica que es null. Y no se como salir de esto.
Espero vuestra respuesta, Un saludo!

Daniel Garcia Frias

unread,
Nov 9, 2016, 11:27:07 AM11/9/16
to desarrolladores-android
El primer bucle, es decir, el que declaras así:
for (i=0;i<1;i++){

Solo se ejecuta una vez, así que no importa mucho cuantos elementos tuviera que tener el array (lo declaras a un número), porque solo llenas el índice 0.

Espero que te ayude.
Saludos
Reply all
Reply to author
Forward
0 new messages