Bom dia!
Irmãos, contruí um formulário que contém campos diversos campos dinâmicos.
Este campos são criados da seguinte forma.
1: Pego o total de dados que a minha tabela possui para gerar o total dos campos.
2: Pego o tipo de cada informação para verificar o tipo de campo que devo contruir.
Até aí tudo bem.
Está me trazendo o resultado certinho.
Não estou conseguindo raciocinar nas seguintes questões.
1: Como valido estes campos (exemplo: impedir que seja enviado dados em branco)
2: Como eu devo chamar o Dao para salvar ou atualizar estes dados.
Alguém consegue me dar uma força?
Segue a minha classe
package br.com.mylims.controller;
import java.util.List;
import br.com.mylims.bean.Info;
import br.com.mylims.model.ColetaDao;
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.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ScrollView;
import android.widget.TextView;
public class TesteCadastroColeta_2 extends Activity{
private static final String CATEGORIA = "coleta";
ColetaDao coletaDao = new ColetaDao(this);
public void onCreate(Bundle icicle){
super.onCreate(icicle);
Bundle extras = getIntent().getExtras();
String idAmostra = extras.getString("idAmostra");
Log.i(CATEGORIA, "idamostra TESTE: " + idAmostra);
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);
int totalDados = coletaDao.listaColeta(idAmostra).size();
for (int i = 0; i < totalDados; i++){
/**RECUPERA O ID DO TIPODADO**/
int recuperaTipoDado = infos.get(i).getCodTipoDado();
/**RECUPERA O CDINFO**/
int recuperaIdInfo = infos.get(i).getCodInfo();
TextView nomeInfoTipo1 = new TextView(this);
TextView nomeInfoTipo2 = new TextView(this);
TextView nomeInfoTipo3 = new TextView(this);
TextView nomeInfoTipo4 = new TextView(this);
TextView nomeInfoTipo5 = new TextView(this);
EditText editText = new EditText(this); /**CAMPO DO TIPO TEXTO QUE RECEBERA OS SEGUINTES CAMPOS (1-TEXTO, 2-NUMERICO, 3-NUMERICO FRACIONARIO, 4-DATA E HORA)**/
EditText texto = new EditText(this); /**CAMPO DO TIPO TEXTO**/
EditText numerico = new EditText(this); /**CAMPO DO TIPO NUMERICO**/
EditText numericoFracionario = new EditText(this); /**CAMPO DO TIPO NUMERICO FRACIONARIO**/
EditText dataHora = new EditText(this); /**CAMPO DO TIPO **/
/**CAMPOS DO TIPO ESCOLHA**/
RadioGroup escolha = new RadioGroup(this); /**CAMPO DO TIPO ESCOLHA**/
RadioButton sim = new RadioButton(this); /**CAMPO DO TIPO ESCOLHA - RESPOSTA SIM**/
RadioButton nao = new RadioButton(this); /**CAMPO DO TIPO ESCOLHA - RESPOSTA NAO**/
/**FORMATA OS CAMPOS**/
/**CAMPO TEXTO**/
texto.setWidth(50);
/**CAMPO NUMERICO**/
numerico.setWidth(50);
/**CAMPO NUMERICO FRACIONARIO**/
numericoFracionario.setWidth(50);
/**CAMPO DATA E HORA**/
dataHora.setWidth(50);
switch (recuperaTipoDado) {
case 1:
nomeInfoTipo1.setText(infos.get(i).getNomeInfo());
linearLayout.addView(nomeInfoTipo1);
editText = texto;
editText.setText("");
editText.setHeight(40);
editText.setInputType(android.text.InputType.TYPE_CLASS_TEXT);
editText.setId(recuperaIdInfo);
linearLayout.addView(editText);
break;
case 2:
nomeInfoTipo2.setText(infos.get(i).getNomeInfo());
linearLayout.addView(nomeInfoTipo2);
editText = numerico;
editText.setText("");
editText.setHeight(40);
editText.setInputType(android.text.InputType.TYPE_CLASS_NUMBER);
editText.setId(recuperaIdInfo);
linearLayout.addView(editText);
break;
case 3:
nomeInfoTipo3.setText(infos.get(i).getNomeInfo());
linearLayout.addView(nomeInfoTipo3);
editText = numericoFracionario;
editText.setText("");
editText.setHeight(40);
editText.setInputType(android.text.InputType.TYPE_NUMBER_FLAG_DECIMAL);
editText.setId(recuperaIdInfo);
linearLayout.addView(editText);
break;
case 4:
nomeInfoTipo4.setText(infos.get(i).getNomeInfo());
linearLayout.addView(nomeInfoTipo4);
editText = dataHora;
editText.setText("");
editText.setHeight(40);
editText.setInputType(android.text.InputType.TYPE_CLASS_DATETIME);
editText.setId(recuperaIdInfo);
linearLayout.addView(editText);
break;
case 5:
nomeInfoTipo5.setText(infos.get(i).getNomeInfo());
linearLayout.addView(nomeInfoTipo5);
sim.setText("Sim");
nao.setText("Não");
escolha.addView(sim);
escolha.addView(nao);
escolha.setId(recuperaIdInfo);
linearLayout.addView(escolha);
break;
} // fim swith
} // 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);
botaoCadastrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
salvaColeta();
Log.i(CATEGORIA, "teste btn cadastrar");
}
});
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);
}
/**ENVIO OS DADOS PARA SALVAR**/
private void salvaColeta() {
}
}
Att.