[Resolvido] Validar checkBox

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);

    }

}