Pessoal,
Estou precisando de uma ajuda para o seguinte caso.
Possuo uma série de nomes listados em um CheckBox. (Isto está ok).
Cada nome possui um determinado arquivo. (OK).
Dúvida.
Quero fazer o upload dos arquivos que seleciono pelo CheckBox.
Exemplo
Arquivos
[x] arquivo 01
[] arquivo 02
[x] arquivo 03
[] arquivo 04
[x] arquivo 05
(BOTÃO ENVIAR)
Ao clicar no botão enviar, ele faz o upload dos arquivos selecionados.
Por favor, alguém consegue me ajudar?
Possuo o código que faz isso com um arquivo por vez clicando no botão sem o ckeckBox.
Preciso adaptar para fazer pelo checkBox.
Seguem os dados que estou utilizando.
package br.com.mylims.controller;
import java.util.List;
import br.com.mylims.auxiliares.UploadFtp;
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.content.Intent;
import android.os.Bundle;
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;
public class TelaListaAmostrasColetadasController extends Activity {
private static final String CATEGORIA = "coleta";
AmostraDao amostraDao = new AmostraDao(this);
private List<Amostra> amostraBean;
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");
final List<Usuario> listaDadosUsuario = usuarioDao.listaDadosUsuario(login, senha);
final int totalDadosUsuario = listaDadosUsuario.size();
amostraBean = amostraDao.getListaAmostrasColetadas();
int total = amostraBean.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 < total; i++) {
final int j = i;
CheckBox checkBox = new CheckBox(this);
checkBox.setText(amostraBean.get(j).getIdAmostra());
checkBox.setId(amostraBean.get(j).getCodAmostra());
linearLayout.addView(checkBox);
}
TextView rodaPe = new TextView(this);
rodaPe.setText("----------------------------------------------------------------");
linearLayout.addView(rodaPe);
LinearLayout linearLayoutBotao = new LinearLayout(this);
linearLayoutBotao.setOrientation(LinearLayout.HORIZONTAL);
Button botaoEnviarFTP = new Button(this);
botaoEnviarFTP.setText("Enviar FTP");
botaoEnviarFTP.setWidth(100);
linearLayoutBotao.addView(botaoEnviarFTP);
botaoEnviarFTP.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
Button botaoVoltar = new Button(this);
botaoVoltar.setText("Voltar");
botaoVoltar.setWidth(100);
linearLayoutBotao.addView(botaoVoltar);
linearLayout.addView(linearLayoutBotao);
botaoVoltar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
s.addView(linearLayout);
setContentView(s);
}
}
Método de upload FTP - OBS: este método foi feito para envio de uma arquivo por vez (sem o CheckBox).
Quero alterar para o envio dos arquivos recebendo os valores do CheckBox.
package br.com.mylims.auxiliares;
import java.io.FileInputStream;
import org.apache.commons.net.ftp.FTPClient;
import android.util.Log;
public class UploadFtp {
private static final String CATEGORIA = "coleta";
public boolean uploadFTP(String ipFTP, String loginFTP, String senhaFTP, String diretorioFTP, String diretorioAndroid, String arquivoFTP){
try {
FTPClient ftp = new FTPClient();
ftp.connect(ipFTP);
ftp.login(loginFTP, senhaFTP);
ftp.enterLocalPassiveMode();
ftp.setFileTransferMode(FTPClient.ASCII_FILE_TYPE);
ftp.setFileType(FTPClient.ASCII_FILE_TYPE);
ftp.changeWorkingDirectory(diretorioFTP);
FileInputStream arqEnviar = new FileInputStream( diretorioAndroid + arquivoFTP);
if (ftp.storeFile(arquivoFTP, arqEnviar)) {
ftp.logout();
ftp.disconnect();
return true;
} else {
ftp.logout();
ftp.disconnect();
return false;
}
} catch (Exception e) {
Log.i(CATEGORIA, "ERRO FTP: " + e);
return false;
}
}
}