Ver mensagens sem resposta | Ver tópicos ativos Hoje é 06 Dez 2019, 06:37



Responder Tópico  [ 13 Mensagens ] 
 [TUTORIAL] Manipulando Arquivos TXT No Android. 
Autor Mensagem
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem [TUTORIAL] Manipulando Arquivos TXT No Android.
Irei fazer um breve tutorial de como manipular arquivos .txt no android com facilidade e organização.
- Usei a API level 8 2.2 (android froyo) para codificar e executar a aplicação.
- Irei postar o projeto com um aplicativo e os fontes e uma simples demonstração de escrita e leitura.

Primeira coisa a ser feita é abrir o AndroidManifest.xml e adicionar uma permissão para escrita no SDCard, pois ele precisa criar e alterar um documento por isso essa permissão deve ser adicionada para que a aplicação funcione:

adicione a seguinte linha abaixo dentro da tag <manifest>:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 


Após isso iremos criar uma classe utilitária par usar nos projetos que necessitarmos ler ou escrever em um arquivo txt.
Irão conter os métodos de escrita e leitura do arquivo para facilitar o acesso e generalizar o código.

Chamei a classe de FileUtil.java

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import android.os.Environment;

public class FileUtil {
    private static BufferedReader bufferedReader;
    private static BufferedWriter bufferedWriter;
   
    private static boolean checkSdCard() throws Exception {
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            // SD montado, podemos ler e escrever no disco
            return true;
        } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
            throw new Exception("SDCARD configurado para somente leitura.");
        }
        throw new Exception("Não é possível gravar no SDCARD.");
    }

    /***********************************************************************
     *                      MÉTODOS DE LEITURA                             *
     **********************************************************************/

    public static boolean createBufferedReader(String nomeArquivo)
            throws IOException, Exception {
        if (checkSdCard()) {
            File file = new File(Environment.getExternalStorageDirectory()
                    + "/" + nomeArquivo + ".txt");
            if (file.exists()) {
                bufferedReader = new BufferedReader(new InputStreamReader(
                        new FileInputStream(file), "ISO-8859-1"));
                return true;
            } else {
                throw new Exception("Arquivo não encontrado.");
            }
        }
        return false;
    }

    public static String getText() throws IOException {
        String aux = null;
        String ret = "";
        while ((aux = bufferedReader.readLine()) != null) {
            ret += aux + "\n";
        }

        return ret;
    }
   
    public static String readLine() throws IOException{
        return bufferedReader.readLine();
    }
   
    public static boolean closeReader() throws IOException {
        bufferedReader.close();
        return true;
    }

    /***********************************************************************
     *                      MÉTODOS DE ESCRITA                             *
     **********************************************************************/

    public static boolean createBufferedWriter(String nomeArquivo)
            throws IOException, Exception {
        if (checkSdCard()) {
            File file = new File(Environment.getExternalStorageDirectory()
                    + "/" + nomeArquivo + ".txt");
            file.createNewFile();
            bufferedWriter = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(file), "ISO-8859-1"));
            return true;
        }
        return false;
    }

    public static boolean write(String text) throws IOException {
        bufferedWriter.write(text);
        return true;
    }
   
    public static boolean appendLine(String line) throws IOException{
        bufferedWriter.append(line+"\n");
        return true;
    }
   
    public static boolean closeWriter() throws IOException {
        bufferedWriter.close();
        return true;
    }

}
 


Variáveis:
- private static BufferedReader bufferedReader;
Variável a ser instanciada para fazer a leitura dos nossos arquivos txt
- private static BufferedWriter bufferedWriter;
Responsável por escrever no nosso txt.

Importante ressaltar que essas duas variáveis são private pois não poderão ser vistas de fora dessa classe.

Método Utilitário:
- private static boolean checkSdCard() throws Exception
Útil na hora de checar se o sdcard está corretamente montado, se está em modo que possa ser escrito dentro dele, caso não der para escrever/ler irá retornar uma exceção, método privado somente usado nessa classe.

Métodos de Leitura:
- public static boolean createBufferedReader(String nomeArquivo) throws IOException, Exception
Método público chamado quando queremos abrir um arquivo que desejamos ler o seu conteúdo, podem ocorrer duas exceções: IOException, erro na abertura, escrita ou leitura do arquivo, Exception: qualquer outra excessão
parâmetro: nomeArquivo é o nome do arquivo que vai ser aberto, lembrando que esse método somente abre arquivos que estão na raiz/root do sdcard.
- public static String getText() throws IOException
Este método serve para ler o texto do arquivo que foi aberto no bufferedReader.
retorno: o texto/conteúdo do arquivo txt aberto no buffer.
- public static String readLine() throws IOException
Lê a próxima linha que está no bufferedReader
retorno: texto/conteúdo da próxima linha do arquivo txt aberto no buffer.
- public static boolean closeReader() throws IOException
Método importante, serve para fechar o bufferedReader, caso não fexá-lo, poderá ficar consumindo memória e ao instanciá-lo novamente pode trazer o texto anterior, ou seja, irá retornar coisas indevidas e confundir a sua resposta.

Métodos de Escrita:
- public static boolean createBufferedWriter(String nomeArquivo) throws IOException, Exception
Parecido com o método createBufferedReader, porém este método faz a escrita do texto passado por parâmetro, dispara as mesmas exceções do createBufferedReader, só que cria uma instância da variável bufferedWriter com o nome do arquivo passado por parâmetro, muito importante guardar este nome para usar o bufferedReader depois na hora de ler este txt criado. ser por ventura houver um arquivo já criado com este nome, irá ser criado um novo.
parâmetro: nomeArquivo: nome do arquivo que vai ser aberto.
- public static boolean write(String text) throws IOException
Método usado depois de instanciar o bufferedWriter, serve para escrever no arquivo txt a string passada por parâmetro.
parâmetro: text: texto a ser escrito no arquivo aberto pelo bufferedWriter.
- public static boolean appendLine(String line) throws IOException
Método que escreve uma linha e aguarda ser chamado novamente caso precise para escrever outras.
parâmetro: line: texto que irá ser escrito na linha.
- public static boolean closeWriter() throws IOException
Fecha o bufferedWriter, importante quando não utilizado mais, caso não fechado, pode escrever algo inesperado no seu arquivo de texto.


Pronto, temos uma classe utilitária para escrevermos em arquivos texto em qualquer aplicação que precisamos implementar, seja com escrita ou leitura, podemos modificar os jeitos de como lemos e escrevemos, por exemplo:

> Write (escrever em arquivo .txt)

Precisamos somente escrever um texto que está em algum lugar, usamos dessa forma:

try {
    FileUtil.createBufferedWriter("teste");
    FileUtil.write("Hello World!");
    FileUtil.closeWriter();
} catch (IOException e) {
    Toast.makeText(this,
            "Erro ao escrever/abrir/fechar o arquivo de texto.",
            Toast.LENGTH_LONG).show();
    e.printStackTrace();
} catch (Exception e) {
    Toast.makeText(this, "Erro ao manipular arquivo txt.",
            Toast.LENGTH_LONG).show();
    e.printStackTrace();
}
 


IMPORTANTE: Nunca esquecer de fechar o Writer.

Se precisarmos escrever diversas linhas em diversas oportunidades diferentes, por exemplo, lendo dados do banco e escrevendo escrevendo enquanto conter registros no banco.

try {
     FileUtil.createBufferedWriter("teste");
     while([lendo do banco alguma coisa]){
          FileUtil.appendLine(textoASerEscrito);
     }
     if(operacaoConcluida){
          FileUtil.appendLine("operação concluída!");
     } else {
          FileUtil.appendLine("operação não concluída!");
     }
     FileUtil.closeWriter();
} catch (IOException e) {
    Toast.makeText(this,
            "Erro ao escrever/abrir/fechar o arquivo de texto.",
            Toast.LENGTH_LONG).show();
    e.printStackTrace();
} catch (Exception e) {
    Toast.makeText(this, "Erro ao manipular arquivo txt.",
            Toast.LENGTH_LONG).show();
    e.printStackTrace();
}
 


> Read (ler um arquivo .txt)

Se por exemplo você precisar ler o conteúdo inteiro de um determinado .txt é só você abrir o BufferedReader e chamar o método getText(), dessa forma:

try {
    FileUtil.createBufferedReader("teste");
    String texto = FileUtil.getText();
    FileUtil.closeReader();
} catch (IOException e) {
    Toast.makeText(this,
        "Erro ao escrever/abrir/fechar o arquivo de texto.",
        Toast.LENGTH_LONG).show();
    e.printStackTrace();
} catch (Exception e) {
    Toast.makeText(this, "Erro ao manipular arquivo txt.",
        Toast.LENGTH_LONG).show();
    e.printStackTrace();
}
 



Caso precisarmos ler linha por linha e tratar cada linha podemos usar o método readLine()

try {
    String texto = "";
    FileUtil.createBufferedReader("teste");
    while((texto = FileUtil.readLine()) != null){
        if(texto.equalsIgnoraCase("Já salvo")){
            //não salvar no banco de dados
        } else {
            //Salvar no banco de dados
        }
    }
    FileUtil.closeReader();
} catch (IOException e) {
    Toast.makeText(this,
        "Erro ao escrever/abrir/fechar o arquivo de texto.",
        Toast.LENGTH_LONG).show();
    e.printStackTrace();
} catch (Exception e) {
    Toast.makeText(this, "Erro ao manipular arquivo txt.",
        Toast.LENGTH_LONG).show();
    e.printStackTrace();
}
 


IMPORTANTE: Nunca esquecer de fechar o Reader.

:arrow: Documentação Complementar:
http://developer.android.com/reference/android/os/Environment.html
http://docs.oracle.com/javase/6/docs/api/
http://docs.oracle.com/javase/6/docs/api/java/io/BufferedReader.html
http://docs.oracle.com/javase/6/docs/api/java/io/BufferedWriter.html


Você não tem permissões suficientes para ver os arquivos anexados nesta mensagem.

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


21 Jan 2013, 16:40
Perfil WWW
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Parabéns pelo tutorial!!

Agora eu tenho uma contribuição:

Prefira fechar o "Writer" e o "Reader" no "finally", depois do "catch". O que acontece é que se der uma exceção dentro do seu "try", antes de chegar na linha de fechá-los, vc terá problema.

O "finally" é executado sempre, dando exceção ou não!!


try {
   // código
} catch (Exception e) {
   // Tratamento do erro
} finally {  
   // código executado, mesmo levantando exceção
   FileUtil.closeReader(); // exemplo
}
 


Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


21 Jan 2013, 20:54
Perfil WWW
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Boa colocação antunes, já sofri com isso com MySql, esqueci de implementar neste tutorial.
kkkkkkkk

Obrigado! /ww

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


21 Jan 2013, 21:57
Perfil WWW
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Mudando um pouco o foco, existe alguma forma de criar uma lista de registros no strings.xml ou outro xml, similar ao string-array, onde eu coloque todo o conteúdo de um arquivo texto e que eu possa ler desde o início quantas vezes forem necessárias?

Eu queria mesmo era ler o conteúdo do arquivo hospedado junto com meu site, mas ficou inviável (uma vez que a codificação para isto ficaria maior que a do meu aplicativo), e colocar como string-array será muito braçal, pois este arquivo é modificado um vez por ano.

Obrigado

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


19 Mar 2013, 17:51
Perfil WWW
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
especifique mais o seu problema, o que você quis dizer com
Citação:
onde eu coloque todo o conteúdo de um arquivo texto e que eu possa ler desde o início quantas vezes forem necessárias?

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


20 Mar 2013, 16:26
Perfil WWW
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Eu tenho uma tabela em um arquivo texto hospedado em meu provedor, mas é uma tabela que muda muito pouco, só anualmente. São mais ou menos 200 linhas com registros de 139 caracteres.

Eu queria ter esta tabela internamente no sistema, mas não queria colocar como array,pois quando precisar atualizar vai dar um trabalhão, queria como se o arquivo texto estivesse dentro do sistema.

Eu queria uma forma de armazenar no sistema sem a necessidade de colocar <item> e </item>
Uma vez armazenado internamente, não deve ser complicado ler esta tabela quantas vezes for necessário, se bem que nesta versão gratuita do aplicativo, bem mais simples, serão dois acessos a cada clique no botão de cálculo.

Se não tiver uma opção melhor, posso até tentar como array mesmo.
Obrigado

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


20 Mar 2013, 22:09
Perfil WWW
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
se a tabela muda anualmente você tem algumas opções como:
- criar um arquivo XML, assim alterando registros quando for necessário.
- criar uma base de dados que terá de ser alterada dinamicamente caso alterado alguma coluna.
- criar um arquivo texto e armazenar os valores.

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


21 Mar 2013, 11:37
Perfil WWW
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Já resolvi o problema, ao invés de fazer download criei um arquivo em res\raw e já leio a tabela, já que ela muda só uma vez por ano, com a inclusão de mais registros.

Obrigado

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


21 Mar 2013, 12:06
Perfil WWW
Google employee
Google employee

Data de registro: 01 Jul 2013, 13:45
Mensagens: 2735
Localização: Rio de Janeiro
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Nessa linha:

 File file = new File(Environment.getExternalStorageDirectory() + "/" + nomeArquivo + ".txt");
 


Define que o arquivo seja salvo no SDcard.

Se eu colocar:

 File file = new File(Environment.getExternalStorageDirectory() + "/Aplcativos/" + nomeArquivo + ".txt");
 


o txt será gravado dentro da pasta Aplicativos, que ja existe no meu Sdcard. Mas como eu posso criar as pastas de forma automatica:

 File file = new File(Environment.getExternalStorageDirectory() + "/Portal/Android/" + nomeArquivo + ".txt");


As pastas Portal e Android nao existem, mas eu gostaria de cria-las definindo no método ali em cima. Existe alguma forma??

_________________
Quando seu problema for resolvido, clique na opção Editar no lado superior direito da sua primeira mensagem e coloque [Resolvido] no título.
Se resolveu o problema sozinh@, não esqueça de postar a solução, ela ajuda usuários em buscas no fórum.
Use os marcadores java e xml quando for postar.

Aprenda Java com esta apostila.


20 Jul 2013, 14:49
Perfil WWW
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 789
Localização: Blumenau - SC
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
existe sim, você pode utilizar o comando/método mkdir() da classe file sem problema nenhum que irá criar o seu diretório caso não exista.

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


09 Out 2013, 17:34
Perfil WWW
Android application
Android application

Data de registro: 07 Jul 2015, 21:02
Mensagens: 62
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Existe alguma possibilidade de gravar esse arquivo de texto na memória do dispositivo, sem que seja no SDCard?


10 Jul 2015, 13:18
Perfil
Android application
Android application

Data de registro: 07 Jul 2015, 21:02
Mensagens: 62
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Olá tudo bem, criei um aplicativo que gere um arquivo de texto conforme o tutorial, ficou show de bola.

Mas preciso de fazer uma leitura no banco e escrever no arquivo, no tutorial já mostra o passo a passo, mas como seria o código pra implementar a leitura do banco e escrita no arquivo de texto. Se alguem puder ajudar, ficarei grato.


11 Jul 2015, 20:01
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [TUTORIAL] Manipulando Arquivos TXT No Android.
Nunca gravei nada ali, só li

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


31 Jul 2015, 13:41
Perfil WWW
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 13 Mensagens ] 

Quem está online

Usuários vendo este fórum: ac0502, Aderbal Nunes, agtavares, Alan Unger, alansousa, albinoneto, Alex Marcelo Burnett, alexandrepom, Alexandrercarvalho, alexmarcolongo, alexsander.miranda, alylson, americano, Anderson MarkZ, ANDRE FELIX DE ASSIS, andrelom, Antonio Carlos, Aparec, attomweb, Augusto, Avelino Mateus Neto, axellsan, b7web, Berbert, bernardodauer, bigr ecreio, billsombrio, Bitetti, blurkness, Bravox, brenno, Bruno, brunomalka, capo, Carmizini, cavenaghi, cesschneider, chunga, Cr-Informática, dannieltec, dbispo, deivisonrpg, denisfln, diegorrborges, Douglas Siviotti, estratec, euguns, fabrizior, faco, felipedsilva, fernando neves, fgalvão, Flávio Robertgo, frances135, Gabriel Teófilo, gutem25, helder, heliopassos, ICCrawler - ICjobs, Idelto, Igor_M, jcorreajr, jeanbr07, jefficojava, jgfelix, Joessi2007, jonasminas, José Guilherme, jrsilva, Julio Assis, kennedyximenes, klebersilvarocha, Legiao, leosl81, Lincoln, Liviosousa, lucianno, Luke Skywalker, Mace Windu, Maiquell, malucouto, mam_computer, marcelosv, MARCIOHG, Marco Magoo, Marini, martins, mauriciomag, mcurtis, Meticore, miguel, mikasjau, mmiottobarbosa, monteirojp, MSPRAFAEL, n3t0, navegador, neosun, NeruLL, neuhaus, Nidio Dolfini, nishimura.ichigo, Nute Gunray, Odigooogle™, oliverlessa, Orivalde, osternack, pabarbosa, Patrick, paulokiller, pjorge, polonia, pomarolli, pumadeejay, Rafael, rafaelmonoh, rayberg, rerp7, Ricardo Chikasawa, rocha, RodReis, rodrigo_mg, romuloigor, rubens_olv, sandro, ScoobyGB, Silvio Vaz, Stryder, suissa, Thiago, thiago@xbrain.com.br, Topeca, vanmars, Vinicius, voliverio, W3 [Sitesearch], weber, wilsond, woyzeck, xGambit, xikin, yuri82 e 4 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:
cron

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi