Pessoal preciso validar a minha lista de campos checkBox em dois botões de duas formas diferentes.
Validações.
Botão Enviar FTP : exigir pelo menos a seleção de um checkbox. (Gerar mensagem caso não selecione nenhum).
Botão Ver Amostra: permitir somente a seleção de um checkbox. (Gerar mensagem caso não selecione nenhum ou mais de um).
Segue o código que só está faltando isto para terminar.
Att
package br.com.mylims.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import br.com.mylims.auxiliares.ConexaoFTP;
import br.com.mylims.bean.Amostra;
import br.com.mylims.bean.Usuario;
import br.com.mylims.model.AmostraDao;
import br.com.mylims.model.UsuarioDao;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
public class TelaListaAmostrasColetadasController extends Activity {
private static final String CATEGORIA = "coleta";
private String diretorioFTP;
private String diretorioAndroid;
private String arquivoFTP;
private String ipFTP;
private String loginFTP;
private String senhaFTP;
private String data;
private String hora;
private String dataFormatar;
private String horaFormatar;
private String dataHoraFormatada;
// private ProgressDialog dialog;
//private Handler handler;
private List<Amostra> amostraBean;
private CheckBox[] checkBox;
AmostraDao amostraDao = new AmostraDao(this);
UsuarioDao usuarioDao = new UsuarioDao(this);
public void onCreate(Bundle icicle){
super.onCreate(icicle);
Bundle extras = getIntent().getExtras();
final String idEmpresa = extras.getString("idEmpresa");
final String idProcesso = extras.getString("idProcesso");
final String login = extras.getString("login");
final String senha = extras.getString("senha");
amostraBean = amostraDao.getListaAmostrasColetadas();
final int totalAmostrasColetadas = amostraBean.size();
if (totalAmostrasColetadas <= 0) {
Toast.makeText(TelaListaAmostrasColetadasController.this, "Não existem amostras coletadas!", Toast.LENGTH_SHORT).show();
chamaTelaConfiguracao(login, senha);
} else {
checkBox = new CheckBox[totalAmostrasColetadas];
final List<Usuario> listaDadosUsuario = usuarioDao.listaDadosUsuario(login, senha);
final int totalDadosUsuario = listaDadosUsuario.size();
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
ScrollView s = new ScrollView(this);
s.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
TextView tituloDados = new TextView(this);
tituloDados.setText("LISTAGEM DE AMOSTRAS COLETADAS");
linearLayout.addView(tituloDados);
TextView linha = new TextView(this);
linha.setText("----------------------------------------------------------------");
linearLayout.addView(linha);
for (int i = 0; i < totalAmostrasColetadas; i++) {
try {
final int j = i;
checkBox[j] = new CheckBox(this);
checkBox[j].setText(amostraBean.get(j).getIdAmostra()); //NOME DA AMOSTRA
checkBox[j].setId(amostraBean.get(j).getCodAmostra()); // ID DA AMOSTRA
linearLayout.addView(checkBox[j]);
}
catch (Exception e) {
Log.i(CATEGORIA, "ERRO FOR: " + e);
}
}
TextView rodaPe = new TextView(this);
rodaPe.setText("----------------------------------------------------------------");
linearLayout.addView(rodaPe);
LinearLayout linearLayoutBotao = new LinearLayout(this);
linearLayoutBotao.setOrientation(LinearLayout.VERTICAL);
Button botaoEnviarFTP = new Button(this);
botaoEnviarFTP.setText("Enviar FTP");
botaoEnviarFTP.setWidth(80);
linearLayoutBotao.addView(botaoEnviarFTP);
botaoEnviarFTP.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// dialog = ProgressDialog.show(TelaListaAmostrasColetadasController.this, "", "Exportando amostras. Por favor, aguarde...", true);
Thread thread = new Thread();
thread.start();
for (int t = 0; t < totalAmostrasColetadas; t++){
if (checkBox[t].isChecked()) {
ConexaoFTP enviarFtp = new ConexaoFTP();
diretorioFTP = "/myLIMS_coleta/coletada/palm01";
diretorioAndroid = "/data/data/br.com.mylims/files/exportar/";
arquivoFTP = "coleta" + amostraBean.get(t).getCodAmostra() + ".xml";
for(int i = 0; i < totalDadosUsuario; i++){
ipFTP = listaDadosUsuario.get(i).getConfigFTPBean().getIpFtp();
loginFTP = listaDadosUsuario.get(i).getConfigFTPBean().getLoginFtp();
senhaFTP = listaDadosUsuario.get(i).getConfigFTPBean().getSenhaFtp();
}
if (enviarFtp.uploadFTP(ipFTP, loginFTP, senhaFTP, diretorioFTP, diretorioAndroid, arquivoFTP)) {
data = "yyyy-MM-dd";
hora = "hh:mm:ss";
Date dataHoraAtual = new java.util.Date();
SimpleDateFormat formata = new SimpleDateFormat(data);
dataFormatar = formata.format(dataHoraAtual);
formata = new SimpleDateFormat(hora);
horaFormatar = formata.format(dataHoraAtual);
dataHoraFormatada = dataFormatar + " " + horaFormatar;
Log.i(CATEGORIA, "DATA UPLOAD: " + dataHoraFormatada);
Amostra am = new Amostra();
am.setDataUpload(dataHoraFormatada);
String idAmostra = String.valueOf( amostraBean.get(t).getCodAmostra());
if (amostraDao.atualizaDataUpload(am, idAmostra)) {
Log.i(CATEGORIA, "DATA UPLOAD ATUALIZADA!");
Toast.makeText(TelaListaAmostrasColetadasController.this, "Dados enviados com sucesso!", Toast.LENGTH_SHORT).show();
//dialog.dismiss();
chamaTelaConfiguracao(login, senha);
} else {
Log.i(CATEGORIA, "ERRO DATA ATUALIZADA");
}
}else{
//dialog.dismiss();
Toast.makeText(TelaListaAmostrasColetadasController.this, "Problema ao enviar os arquivos. Verifique os dados de sua conexão de FTP!", Toast.LENGTH_SHORT).show();
}
}
}
}
});
Button btSelecionarTudo = new Button(this);
btSelecionarTudo.setText("Marcar todas");
btSelecionarTudo.setWidth(80);
linearLayoutBotao.addView(btSelecionarTudo);
btSelecionarTudo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for(int h = 0; h < checkBox.length; h++){
checkBox[h].setChecked(true);
}
}
});
Button btDesmarcarTudo = new Button(this);
btDesmarcarTudo.setText("Desmarcar todas");
btDesmarcarTudo.setWidth(80);
linearLayoutBotao.addView(btDesmarcarTudo);
btDesmarcarTudo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for(int m = 0; m < checkBox.length; m++){
checkBox[m].setChecked(false);
}
}
});
Button botaoVoltar = new Button(this);
botaoVoltar.setText("Voltar");
botaoVoltar.setWidth(80);
linearLayoutBotao.addView(botaoVoltar);
// linearLayout.addView(linearLayoutBotao);
botaoVoltar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
Button botaoVisuAmostra = new Button(this);
botaoVisuAmostra.setText("Ver Amostra");
botaoVisuAmostra.setWidth(80);
linearLayoutBotao.addView(botaoVisuAmostra);
linearLayout.addView(linearLayoutBotao);
botaoVisuAmostra.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
for (int p = 0; p < totalAmostrasColetadas; p++){
String idAmostra = String.valueOf(amostraBean.get(p).getCodAmostra());
Log.i(CATEGORIA, "ID AMOSTRA: " + idAmostra);
ChamaTelaVisuAmostra(login, senha, idAmostra);
}
}
});
s.addView(linearLayout);
setContentView(s);
}
}
private void chamaTelaConfiguracao(String login, String senha) {
Intent it = new Intent(this, TelaConfiguracaoController.class);
it.putExtra("login", login);
it.putExtra("senha", senha);
startActivity(it);
}
private void ChamaTelaVisuAmostra(String login, String senha, String idAmostra) {
Intent it = new Intent(this, TelaVisualizaColetaController.class);
it.putExtra("idAmostra", idAmostra);
it.putExtra("login", login);
it.putExtra("senha", senha);
startActivity(it);
}
}