[Resolvido] Erro ao atualizar dados

Pessoal,

Estou com o seguinte problema.

Tenho um formulário dinâmico que utiliza um for para criar os seus tipos e a sua quantidade de campos

Na ação do botão tenho outro for para fazer a validação deste deste formulário e enviar os dados para o banco.

O problema é que quando eu envio estes dados para o banco, ele só salva os dados do último campo.

Exemplo: se eu tenho um formulário com 3 campos, ao enviar os dados para o banco ele envia as informações do último campo 3 vezes.

Eu preciso que ele envie todos os dados para uma mesma coluna da tabela.

Alguém consegue me ajudar. Estou quebrando a cabeça aqui e não estou conseguindo.

Seguem as classes.

Método Dao para realizar o upload.


public boolean updateColeta(InfoAmostra infoAmostra, String idAmostra)
    {
            
        try {
            
            String[] args = new String[]{idAmostra};
            
            ContentValues valores = new ContentValues();
            
            valores.put("VLINFO", infoAmostra.getVlInfo());
            valores.put("FLOBRIGATORIO", infoAmostra.getFlObrigatorio());
            
            int c = getWritableDatabase().update("INFOSAMOSTRA", valores, "CDAMOSTRA=? ", args);
            
                if (c > 0) {
                    
                    Log.i(CATEGORIA, "Dados cadastrados com sucesso!");
                    Log.i(CATEGORIA, "TOTAL: " + c);
                    return true;
                }
                
                else
                {
                    Log.i(CATEGORIA, "Erro ao cadastrar os dados!");
                    return false;
                    
                }
            
        } catch (SQLException e) {
            
            
            Log.i(CATEGORIA, "Erro SQLException no cadastro coleta" + e);
            return false;
        
        }
        
    }

Classe do formulário


package br.com.mylims.controller;  
  
  
import java.util.List;  
  
import br.com.mylims.auxiliares.MeuSpinnerAdapter;
import br.com.mylims.bean.Info;  
import br.com.mylims.bean.InfoAmostra;
import br.com.mylims.bean.OpcoesInfo;
import br.com.mylims.model.ColetaDao;  
  
import android.R.integer;
import android.app.Activity;  
import android.content.Intent;  
import android.os.Bundle;  
import android.util.Log;  
import android.view.View;  
import android.view.ViewGroup.LayoutParams;  
  
import android.widget.ArrayAdapter;
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.LinearLayout;  
import android.widget.RadioButton;  
import android.widget.RadioGroup;  
import android.widget.ScrollView;  
import android.widget.Spinner;
import android.widget.Toast;  
  
import android.widget.TextView;  
  
public class TesteCadastroColeta_2 extends Activity{  
      
    private static final String CATEGORIA = "coleta";
      
      
        private TextView nomeInfoTipo1;  
        private TextView nomeInfoTipo2;  
        private TextView nomeInfoTipo3;  
        private TextView nomeInfoTipo4;  
        private TextView nomeInfoTipo5;  
        private EditText[] editText;  
        private EditText[] texto;  
        private EditText[] numerico;  
        private EditText[] numericoFracionario;  
        private EditText[] dataHora; 
        private Spinner[] escolha;
        
    
        ColetaDao coletaDao = new ColetaDao(this); 
        
        private InfoAmostra infoAmostra = new InfoAmostra();
      
      
    public void onCreate(Bundle icicle){  
          
        super.onCreate(icicle);  
          
        Bundle extras = getIntent().getExtras();  
          
        final String idAmostra = extras.getString("idAmostra");  
          
        final List<Info> infos = coletaDao.listaColeta(idAmostra);  
          
        ScrollView s = new ScrollView(this);  
        s.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
          
        LinearLayout linearLayout = new LinearLayout(this);  
        linearLayout.setOrientation(LinearLayout.VERTICAL);  
           
         final int totalDados = coletaDao.listaColeta(idAmostra).size();  
         
         editText = new EditText[totalDados];
         texto    = new EditText[totalDados];  
         numerico = new EditText[totalDados];  
         dataHora = new EditText[totalDados];
         numericoFracionario = new EditText[totalDados];
         escolha = new Spinner[totalDados];
      
         
         for (int i = 0; i < totalDados; i++){  
              
             try{   
               
            int recuperaTipoDado = infos.get(i).getCodTipoDado();  /**RECUPERA O ID DO TIPODADO**/  
               
            int recuperaIdInfo = infos.get(i).getCodInfo(); /**RECUPERA O CDINFO**/
        
            /**CHAMA O METODO PARA POPULAR OS CAMPOS SPINNERS**/
                         
            nomeInfoTipo1 = new TextView(this);  
            nomeInfoTipo2 = new TextView(this);  
            nomeInfoTipo3 = new TextView(this);  
            nomeInfoTipo4 = new TextView(this);  
            nomeInfoTipo5 = new TextView(this);  
            
            editText[i] = new EditText(this); /**CAMPO DO TIPO TEXTO QUE RECEBERA OS SEGUINTES CAMPOS (1-TEXTO, 2-NUMERICO, 3-NUMERICO FRACIONARIO, 4-DATA E HORA)**/  
              
            texto[i] = new EditText(this); /**CAMPO DO TIPO TEXTO**/  
            numerico[i] = new EditText(this); /**CAMPO DO TIPO NUMERICO**/  
            numericoFracionario[i] = new EditText(this); /**CAMPO DO TIPO NUMERICO FRACIONARIO**/  
            dataHora[i] = new EditText(this); /**CAMPO DO TIPO **/  
              
            escolha[i] = new Spinner(this);
              
            texto[i].setWidth(50);  
            numerico[i].setWidth(50);  
            numericoFracionario[i].setWidth(50);  
            dataHora[i].setWidth(50);  
              
            switch (recuperaTipoDado) {  
              
            case 1:  
                  
                nomeInfoTipo1.setText(infos.get(i).getNomeInfo());  
                linearLayout.addView(nomeInfoTipo1);  
                editText[i] = texto[i];  
                editText[i].setText("");  
                editText[i].setHeight(40);  
                editText[i].setInputType(android.text.InputType.TYPE_CLASS_TEXT);  
                editText[i].setId(recuperaIdInfo);  
                  
                linearLayout.addView(editText[i]);  
                  
                  
            break;  
              
            case 2:  
                  
                nomeInfoTipo2.setText(infos.get(i).getNomeInfo());  
                linearLayout.addView(nomeInfoTipo2);  
                  
                editText[i] = numerico[i];  
                editText[i].setText("");  
                editText[i].setHeight(40);  
                  
                editText[i].setInputType(android.text.InputType.TYPE_CLASS_NUMBER);  
                editText[i].setId(recuperaIdInfo);  
                  
                linearLayout.addView(editText[i]);  
                  
            break;  
              
            case 3:  
                  
                nomeInfoTipo3.setText(infos.get(i).getNomeInfo());  
                linearLayout.addView(nomeInfoTipo3);  
                  
                editText[i] = numericoFracionario[i];  
                editText[i].setText("");  
                editText[i].setHeight(40);  
                  
                editText[i].setInputType(android.text.InputType.TYPE_NUMBER_FLAG_DECIMAL);  
                editText[i].setId(recuperaIdInfo);  
                  
                linearLayout.addView(editText[i]);  
                  
                  
            break;  
              
            case 4:  
                
                
                nomeInfoTipo4.setText(infos.get(i).getNomeInfo());  
                linearLayout.addView(nomeInfoTipo4);  
                  
                editText[i] = dataHora[i];  
                editText[i].setText("");  
                editText[i].setHeight(40);  
                  
                editText[i].setInputType(android.text.InputType.TYPE_CLASS_DATETIME);  
                editText[i].setId(recuperaIdInfo);  
                  
                linearLayout.addView(editText[i]);  
                  
            break;  
              
            case 5:  
                
                List<OpcoesInfo> opcInf = coletaDao.listaDadosSpinners(String.valueOf(recuperaIdInfo));
                
                nomeInfoTipo5.setText(infos.get(i).getNomeInfo());
                linearLayout.addView(nomeInfoTipo5);  
                
                ArrayAdapter adaptador = new ArrayAdapter(this, android.R.layout.simple_spinner_item, opcInf);
                adaptador.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                
                escolha[i].setAdapter(new MeuSpinnerAdapter<OpcoesInfo>(this, opcInf, new String[] {"nomeOpcao" }));
               
                linearLayout.addView(escolha[i]);  
                  
            break;  
              
              
            } // fim swith  
              
              
        }catch (Exception ex) {  
              
            Log.i(CATEGORIA, "Exception ex" + ex + "FOR: " + (i));  
        }  
              
      
     } // fim for  
           
          
           
            LinearLayout linearLayout2 = new LinearLayout(this);  
            linearLayout2.setOrientation(LinearLayout.HORIZONTAL);  
              
            Button botaoCadastrar = new Button(this);  
            botaoCadastrar.setText("CADASTRAR");  
            linearLayout2.addView(botaoCadastrar);  
              
            Button botalVoltar = new Button(this);  
            botalVoltar.setText("VOLTAR");  
            linearLayout2.addView(botalVoltar);  
              
              
         
            /**BOTAO CADASTRAR**/  
              
            botaoCadastrar.setOnClickListener(new View.OnClickListener() {  
                  
                @Override  
                public void onClick(View v) {  
                      
                    try {  
                          
                        for (int j = 0; j < totalDados; j++)  
                        {  
                              
                            int recuperaTipoDado = infos.get(j).getCodTipoDado();  /**RECUPERA O ID DO TIPODADO**/  
                               
                           // int recuperaIdInfo = infos.get(j).getCodInfo(); /**RECUPERA O CDINFO**/   
                              
                              
                            switch (recuperaTipoDado) {  
                                case 1:  
                                  
                                    if (texto[j].getText().toString().equals("")) {  
                                        Toast.makeText(TesteCadastroColeta_2.this, "DIGITE UM TEXTO!", Toast.LENGTH_SHORT).show();  
                                        Log.i(CATEGORIA, "DIGITE UM TEXTO!");  
                                    }  
                                      
                                break;  
  
                                case 2:  
                                      
                                    if(numerico[j].getText().toString().equals("")){  
                                        Toast.makeText(TesteCadastroColeta_2.this, "DIGITE UM NÚMERO INTEIRO!", Toast.LENGTH_SHORT).show();  
                                        Log.i(CATEGORIA, "DIGITE UM NÚMERO INTEIRO!");  
                                    } 
                                      
                                break;  
                                  
                                case 3:  
                                      
                                    if (numericoFracionario[j].getText().toString().equals("")) {  
                                          
                                        Toast.makeText(TesteCadastroColeta_2.this, "DIGITE UM NÚMERO FRACIONÁRIO!", Toast.LENGTH_SHORT).show();  
                                        Log.i(CATEGORIA, "DIGITE UM NÚMERO FRACIONÁRIO!");  
                                    }  
                                      
                                break;  
                                  
                                case 4:  
                                      
                                    if (dataHora[j].getText().toString().equals("")) {  
                                          
                                        Toast.makeText(TesteCadastroColeta_2.this, "DIGITE UMA DATA!", Toast.LENGTH_SHORT).show();  
                                        Log.i(CATEGORIA, "DIGITE UMA DATA!");  
                                    }  
                                      
                                break;  
                                  
                                case 5:  
                                    
                                    if (escolha[j].equals("")){
                                    
                                        Toast.makeText(TesteCadastroColeta_2.this, "SELECIONE UMA OPÇÃO!", Toast.LENGTH_SHORT).show();
                                    }
                                      
                                break; 
                           
                            } // fim with  
                            
                            
                            // ATUALIZA OS DADOS NO BANCO
                            
                            String idIpinners = String.valueOf(escolha[j].getSelectedItemId());
                           
                                String l = editText[j].getEditableText().toString();
                                
                                Log.i(CATEGORIA, "L: " + l);
                                Log.i(CATEGORIA, "idIpinners: " + idIpinners);
                                
                                infoAmostra.setVlInfo(editText[j].getEditableText().toString());
                                infoAmostra.setVlInfo(idIpinners);
                                infoAmostra.setFlObrigatorio("S");
                                
                                if (coletaDao.updateColeta(infoAmostra, idAmostra)) {
                                    
                                    Toast.makeText(TesteCadastroColeta_2.this, "OK", Toast.LENGTH_SHORT).show();
                                    
                                } else {
                                
                                    Toast.makeText(TesteCadastroColeta_2.this, "ERRO METODO UPDATE", Toast.LENGTH_SHORT).show();
                                }
                                
                                Log.i(CATEGORIA, "INFOAMOSTRA: " + infoAmostra);
                                  
                                
                                
                        
                        }  
                          
                    } catch (Exception e) {  
                          
                        Log.i(CATEGORIA, "Erro grave botao cadastroColeta" + e);  
                    }  
                      
                      
                      
                }  
                  
            });  
                      
              
            botalVoltar.setOnClickListener(new View.OnClickListener() {  
                  
                  
                @Override  
                public void onClick(View v) {  
                      
                    //telaListaAmostra();  
                      
                    Log.i(CATEGORIA, "teste btn voltar");  
                }  
  
  
            });  
              
          
            linearLayout.addView(linearLayout2);  
          
            s.addView(linearLayout);  
          
            setContentView(s);  
              
              
  
          
              
    }  
      
       
          
          
              
      
    /**voltar para a tela de listagem das amostras**/  
      
    /*private void telaListaAmostra() { 
        Intent it = new Intent(this, CadastroUsuarioController.class); 
        startActivity(it); 
         
    }*/  
      
      
} 

Alguém me ajuuuuudaaa.

Please.