[color=red]Obs: fiz o codigo de cabeça sem editor, se der algum erro nada que aquele ctrl+espaço nao ajude. [/color]
F
Flip_novidade
putaz ta meio confuso ainda
tudo isso eu pego de uma lista que bem do bd.
private List<String> file_url_pdf;
private List<String> name_file_pdf
DataBaseAdapter dbadapterrr = new DataBaseAdapter();
file_url_pdf = dbadapterrr.getListaPdf(getApplicationContext(), idmes); // pega o endereço do pdf
DataBaseAdapter dbadapterrrr = new DataBaseAdapter();
name_file_pdf = dbadapterrrr.getListaNomePdf(getApplicationContext(), idmes);
tipo no mesmo tempo que tenho que pegar a url 1 tenho que pegar o nome 1...
R
rmendes08
Você sabe como acessar uma lista através de índice ?
F
Flip_novidade
não
tentei adaptar o codigo do nosso amigo...
mais da erro.
String testepdf = null;
String testeurl = null;
int condicao;
if(file_url_pdf.size() > name_file_pdf.size()){ // pegar o maior valor para percorrer todos os valores
condicao = file_url_pdf.size();
}else{
condicao =name_file_pdf.size();
for(int i=0 ; condicao == i ; i++ ){
if(i <= file_url_pdf.size()){//para nao dar erro no codigo(tentar acessar um elemento que nao existe)
testepdf += file_url_pdf.get(i);
}if(i <= name_file_pdf.size()){//para nao dar erro no codigo(tentar acessar um elemento que nao existe)
testeurl += name_file_pdf.get(i);
}
URL url = new URL(testepdf);
URLConnection conection = url.openConnection();
conection.connect();
int lenghtOfFile = conection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(Environment.getExternalStoragePublicDirectory("/APP/"+testeurl));
byte[] data = new byte[8192];
//byte[] data = new byte[1024];
while ((count = input.read(data)) != -1) {
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
}
}
R
rmendes08
Com o perdão do termo, não seja porco! Não copie e cole código pra ver no que vai dar … Isso é gambiarra. Entenda o que você está fazendo antes de mais nada:
for(inti=0; condicao == i ; i++ )//achoqueé
for(inti=0; condicao >= i ; i++ )
como eu disse … fiz o codigo rapidinho sem editor analise o codigo =p
R
rmendes08
Bom, mas pelo que eu to vendo , o seu problema é mais com lógica do que com o uso da lista em si. Pelo que eu entendi do seu códio, você tem que fazer o download de um arquivo pdf e salvar em alguma armazenagem local, é isso ?
G
Guguuu
TB acho q ele nao ta conseguindo pq a lista dele deve ta vindo null ele nao deve estar conseguindo buscar valor nenhum.
F
Flip_novidade
galera muito obrigado pelas dicas....
ainda não tinha trabalhado com lista em minha vida...
Guguuu parabens pela sua logica um dia vou ficar assim
sgue o codigo como ficou
obs: isso é android, onde baixo uns arquivos da web e uso dentro do palicativo
Stringtestepdf="";Stringtesteurl="";intcondicao;if(file_url_pdf.size()==name_file_pdf.size()){// pegar o maior valor para percorrer todos os valores condicao=file_url_pdf.size();//condicao=condicao-1;// aqui estava o erro, a condição tinha um registro amaisfor(inti=0;condicao>=i;i++){if(i<=file_url_pdf.size()){//para nao dar erro no codigo(tentar acessar um elemento que nao existe) testepdf=file_url_pdf.get(i);}if(i<=name_file_pdf.size()){//para nao dar erro no codigo(tentar acessar um elemento que nao existe) testeurl=name_file_pdf.get(i);}URLurl=newURL(testepdf);URLConnectionconection=url.openConnection();conection.connect();intlenghtOfFile=conection.getContentLength();//InputStream input = new BufferedInputStream(url.openStream(), 8192);InputStreaminput=newBufferedInputStream(url.openStream());OutputStreamoutput=newFileOutputStream(Environment.getExternalStoragePublicDirectory("/APP/"+testeurl));byte[]data=newbyte[8192];//byte[] data = new byte[1024];while((count=input.read(data))!=-1){output.write(data,0,count);}output.flush();output.close();input.close();}}