Blogger templates

Comunidade java aberto - Participe da nossa comunidade no facebook (clique aqui)

Visitas

terça-feira, 20 de novembro de 2012

Activity – o que é isso?

,

Hoje iremos conhecer uma das mais importantes classes de uma aplicação Android: A classeActivity.
No post “Criando um projeto Android (Helloworld!)” comecei a falar sobre ela:
Uma Activity é basicamente uma classe gerenciadora de UI (Interface com o usuário). Todo aplicativo android começa por uma Activity.
Ou seja, quando uma aplicação android é executada, na verdade é a sua Activity principal que é lançada.

Ciclo de vida de uma Activity

Uma das coisas que é importante conhecer sobre a Activity é o seu ciclo de vida. E para explicá-lo, nada melhor do que o seguinte diagrama*:
Ciclo de vida de uma Activity
Ciclo de vida de uma Activity

Este diagrama é de fundamental importância para o correto entendimento do funcionamento de uma aplicação android. Ele introduz, implicitamente, os estados que uma Activity pode estar,  os quais explico no desenho abaixo:
Estados de uma Activity
Estados de uma Activity
Voltando ao diagrama do ciclo de vida, temos as seguintes funções:
  • onCreate() É a primeira função a ser executada quando uma Activity é lançada. Geralmente é a responsável por carregar os layouts XML e outras operações de inicialização. É executada somente uma vez durante a “vida útil” da Activity.
  • onStart() É chamada imediatamente após a onCreate() – e também quando uma Activity que estava em background volta a ter foco.
  • onResume() Assim como a onStart(), é chamada na inicialização da Activity (logo após a própria onStart())  e também quando uma Activity volta a ter foco. Qual a diferença entre as duas? A onStart() só é chamada quando a Activity não estava mais visível na tela e volta a ter o foco, enquanto a onResume() sempre é chamada nas “retomadas de foco”.
  • onPause() É a primeira função a ser invocada quando a Activity perde o foco (ou seja, uma outra Activity vem à frente).
  • onStop() – Análoga à onPause(), só é chamada quando a Activity fica completamente encoberta por outra Activity (não é mais visível).
  • onDestroy() A última função a ser executada. Depois dela, a Activity é considerada “morta” – ou seja, nao pode mais ser relançada. Se o usuário voltar a requisitar essa Activity, outro objeto será contruído.
  • onRestart() Chamada imediatamente antes da onStart(), quando uma Activity volta a ter o foco depois de estar em background.

Executando uma Activity

Já sabemos que quando a sua aplicação é executada, a Activity definida como padrão (na criação do projeto) é lançada. Mas eu posso criar outras Activities?
É claro que sim.
E para executar outras Activities, basta usar as funções startActivity() e startActivityForResult(). No exemplo abaixo, lançamos uma segunda Activity a partir da principal, e esperamos umresultado dela – como se fosse um retorno de função.
  1.  static final int PICK_CONTACT_REQUEST = 0;  
  2.   
  3.   @Override  
  4.   public void onCreate(Bundle savedInstanceState) {  
  5.       super.onCreate(savedInstanceState);  
  6.       setContentView(R.layout.main);  
  7.       startActivityForResult(  
  8.               new Intent(Intent.ACTION_CONTACT_REQUEST,  
  9.               new Uri("content://contacts")),  
  10.               CONTACT_REQUEST);  
  11.   }  
  12.   
  13.   protected void onActivityResult(int requestCode, int resultCode,   
  14.                                             Intent data) {  
  15.       if (requestCode == CONTACT_REQUEST) {  
  16.    if (resultCode == RESULT_OK) {  
  17.           // fazer alguma coisa...  
  18.     }  
  19. }  
Quando a segunda Activity terminar a sua execução, a função onActivityResult() será invocada, com o “resultado” como parâmetro.

Mas como uma Activity define o seu resultado, a ser lido por aquela que a chamou?
Isso é feito invocando-se a função setResult (int resultCode), como por exemplo:
  1. setResult(Intent.RESULT_OK);  
Alguém percebeu que eu não disse nada sobre os parâmetros da startActivityForResult()? Isso é porque este é o assunto do meu próximo post – o mecanismo de Uris em Android


Continue lendo

Criando um projeto Android (Helloworld!)

,


No artigo da semana passada vimos como montar o ambiente de desenvolvimento android. Caso seu ambiente ainda não esteja funcionando, volte lá e veja o que faltou.
Hoje iremos criar nosso primeiro projeto android – o nosso “Helloworld”.

Passo 1 – Criando o projeto no Eclipse

Abra o Eclipse, vá até File>New>Project
Na tela que aparecer, escolha “Android Project” e clique em “Next”.
Criando um Android Project
Criando um "Android Project"
Após isso, irá aparecer a tela com as configurações de seu projeto android.
Nesta tela, você precisa inserir os seguintes dados:
  • Project name - É o nome do projeto no eclipse.
  • Build Target – É a versão do Android para a qual o seu projeto será direcionado.
  • Application name – É o nome da sua aplicação – o nome que aparecerá no telefone.
  • Package name -  É o package no qual serão criadas as suas classes java.
  • Create Activity – Marque este checkbox e coloque um nome na caixa de texto. À frente explicarei o que é uma Activity.
Depois disso, basta clicar em “Finish”.
configurando o projeto android
Configurando o projeto android

Passo 2 – Imprimindo um texto

Após isso, será criado um novo projeto e dentro dele, na pasta src/<nome_do_package>/ você encontrará um arquivo .java com o nome da Activity que você colocou no passo anterior.
Para fazer a sua aplicação imprimir um texto na tela, modifique este arquivo dessa forma:
  1. package br.com.felipesilveira.hello_world;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.widget.TextView;  
  6.   
  7. public class HelloWorld extends Activity {  
  8.     /** Called when the activity is first created. */  
  9.     @Override  
  10.     public void onCreate(Bundle savedInstanceState) {  
  11.         super.onCreate(savedInstanceState);  
  12.         TextView view = new TextView(this);  
  13.         view.setText("Hello, Android");  
  14.         setContentView(view);  
  15.   
  16.     }  
  17. }  

Parte 3 – Rodando a aplicação no emulador

Para rodar nosso recém criado programa no emulador do google, vá até “Run”>Run as “Android Application”. Uma instância do emulador será criada, com o nosso “HelloWorld” rodando.
Hello World rodando no emulador
Hello World rodando no emulador

O que é uma Activity?

Neste HelloWorld tivemos contato com o primeiro elemento de um código android: A Activity.
Uma Activity é basicamente uma classe gerenciadora de UI (Interface com o usuário). Todo aplicativo android começa por uma Activity. Para saber mais, veja a documentação da classeActivity. Nos próximos artigos falaremos bastante sobre ela, suas características, seu ciclo de vida e como manipulá-la corretamente.
DICA: Além de rodar a aplicação, você pode explorar um pouco o emulador, para conhecer o sistema operacional Android, caso ainda não conheça. Durante o desenvolvimento, o emulador será seu melhor amigo, então essa é a oportunidade para conhecê-lo bem.
Continue lendo

Começando a desenvolver aplicativos para Android

,


Este post é o primeiro de uma série em que vou ensinar, passo a passo, como criar um aplicativo para a plataforma android.

Android é a plataforma do google para dispositivos móveis que equipa um grande número de telefones no mercado. (g1, motorola dext, milestone, nexus one…)
O que preciso para começar a desenvolver para android?
Uma idéia e força de vontade :) . E claro, saber programar em Java. Você NÃO precisa de um hardware (telefone) para isso. A grande maioria dos testes pode ser feito no emulador!
Além disso, Android é uma plataforma de código aberto e o desenvolvimento de programas é amplamente incentivado pelo Google (e pela Motorola, como vamos ver no final do post).
Por onde começar?
O primeiro passo é montar seu ambiente de desenvolvimento.
1) Montar o ambiente padrão fornecido pelo Google. Para isso, você precisará seguir os seguintes passos:
- Instalar o Eclipse (www.eclipse.org)
- Instalar o Android SDK (developer.android.com/sdk)
- Instalar o ADT Plugin (developer.android.com/sdk/eclipse-adt.html)
Todos os links contém as instruções para instalação dos componentes. Caso haja dúvidas, coloque nos comentários!
DICA: Você pode “economizar” os passos acima usando o ambiente do Motodev – que é basicamente a junção de todos os passos acima e mais algumas ferramentas. Para instalar o Motodev Studio vá até a página http://developer.motorola.com/docstools/motodevstudio/
É importante dizer que os aplicativos gerados pelo Motodev Studio funcionarão em todos os telefones, e não só em telefones Motorola.
Com isso terminamos o nosso primeiro passo. No próximo passo, vou mostrar como criar um projeto android no eclipse. Até lá!
Continue lendo

segunda-feira, 19 de novembro de 2012

Pega data e hora de um campo TimeStamp

,



  1. Timestamp time = new Timestamp();  
  2. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  3. String formatedDate = format.format(time.getTime()); 
  4. jOptionDialog.showMessage(null,formateDate);//mostra mensagem com a data formatada


  • Timestamp time = new Timestamp();  
  • SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");  
  • String formatedDate = format.format(time.getTime()); 
  • jOptionDialog.showMessage(null,formateDate);//mostra mensagem com a hora formatada
  • Continue lendo

    Cálculo com horas no Postgres

    ,

    Olá galera,
    Esses dias uma pessoa me mandou e-mail, pedido minha ajuda.
    Vocês já sabem que estou sempre disposto a ajudar, muitas vezes
    não dou a resposta, mas explico e mostro as ferramentas que auxiliam no desenvolvimento do problema.
    
    
    Dê um peixe a um homem faminto e você o alimentará por um dia. Ensine-o a pescar, e você o estará alimentando pelo resto da vida. Provérbio chinês
    Isso é algo, que tenho por base de pensamento em determinadas situações.
    Mas como a dúvida que me enviaram eu vi que era um pouco complexa se tratando de POSTGRES! 

    Enfim, vamos lá.

    Foi apresentado o seguinte problema.

    Uma criança vai ao parque de diversões se divertir, ela paga R$ 15,00 para entrar, ela fica no parque desde das 10:30h até as 15:37h. Qual é o tempo total que ela ficou no parque?

    Primeiramente parece ser algo simples, é um conta de menos, onde subtrai o horário de saída com o horário de entrada.
    Mas nem sempre é assim, no ramo de informática, principalmente se tratando de Postgres, no SQL Server é algo muito simples, gasta-se 1 linha de código para ser feito.

    Vamos lá, nós temos a seguinte tabela

    ID -> Identificação sequencial de entradas e saídas do parque
    HORA_ENTRADA -> Hora que a pessoa entrou
    HORA_SAIDA -> Hora que a pessoa saiu


    CREATE TABLE PLAYGROUND(
    ID integer,
    HORA_ENTRADA timestamp,
    HORA_SAIDA timestamp
    );

    Tipo Primitivo TimeStamp -> Formato que acompanha Data e Hora

    Vamos inserir alguns registros, pensando que entrou 3 pessoas no Parque


    INSERT INTO PLAYGROUND VALUES(1,'2012-11-19 14:00:00','2012-11-19 15:30:00');
    INSERT INTO PLAYGROUND VALUES(2,'2012-11-19 12:00:32','2012-11-19 17:30:51');
    INSERT INTO PLAYGROUND VALUES(3,'2012-11-19 9:42:01','2012-11-19 14:50:51');

    Mostrando todos registros inseridos

    SELECT * FROM PLAYGROUND;

    Temos abaixo o seguinte resultado








    Vamos fazer o cálculo de tempo total que a pessoa permaneceu no local


    SELECT 
    *,
    (to_timestamp(to_char(HORA_SAIDA,'HH24:MI:SS'),'HH24:MI:SS') 

    to_timestamp(to_char(HORA_ENTRADA,'HH24:MI:SS'),'HH24:MI:SS')) AS     TEMPO_PERMANECIDO,


    FROM PLAYGROUND 
    ORDER BY ID;

    Temos abaixo o resultado da pesquisa




    Lembrando que não é preciso criar um campo para armazenar o tempo total, pois viola as regras da 3ª Forma Normal. Se o campo pode ser obtido por algum cálculo não é necessário que ele faça parte da tabela.

    Vamos explicar passo a passo

    to_char(HORA_SAIDA,'HH24:MI:SS'),'HH24:MI:SS')  -> Converte campo para o formato de texto do tipo Char com a seguinte formatação HH24:MI:SS que é Horas to tipo 24h (pode ser 12h) e depois converte essa conversão do tipo Char para novamente TimeStamp (to_timestamp(to_char(HORA_SAIDA,'HH24:MI:SS'),'HH24:MI:SS') convertendo também para o formato de 24h.
    Também foi usado o comando AS do SQL que é apelidar o nome do campo.

    Ok!

    Vamos detalhar mais essa situação, agora vamos obter o tempo máximo permanecido e o tempo minimo permanecido no local.


    SELECT 
    *,
    (to_timestamp(to_char(HORA_SAIDA,'HH24:MI:SS'),'HH24:MI:SS') 

    to_timestamp(to_char(HORA_ENTRADA,'HH24:MI:SS'),'HH24:MI:SS')) AS TEMPO_PERMANECIDO,

    (SELECT MAX(to_timestamp(to_char(HORA_SAIDA,'HH24:MI:SS'),'HH24:MI:SS') 

    to_timestamp(to_char(HORA_ENTRADA,'HH24:MI:SS'),'HH24:MI:SS')) 
    FROM PLAYGROUND) AS MAIOR_TEMPO_PERMANECIDO,

    (SELECT MIN(to_timestamp(to_char(HORA_SAIDA,'HH24:MI:SS'),'HH24:MI:SS') 

    to_timestamp(to_char(HORA_ENTRADA,'HH24:MI:SS'),'HH24:MI:SS')) 
    FROM PLAYGROUND) AS MENOR_TEMPO_PERMANECIDO

    FROM PLAYGROUND 
    ORDER BY ID;

    Vejam, foi usado mais dois SubSelects que mostra o tempo Maximo com a função MAX e o tempo Minimo com a função MIN.

    O Subselect funciona quando queremos retornar apenas um resultado da pesquisa, ou seja, aqui queremos retorna apenas o maior tempo e o menor tempo

    Temos abaixo o resultado da pesquisa



    Lembrando que todo esse processo poderia ser feito no próprio Java, mas se o banco de dados pode fazer isso, é melhor ainda, vai economizar muitas e muitas linhas de código para fazer isso no java..

    A operação que pode ser feita, pode ser qualquer operação aritimética + , - , * , /
    Esse código pode diminuir, tambem é possivel implementar várias outras funções como, mostrar a média,
    para isso só usar mais SubSelect.

    É isso aí gente, calculando com Postgres..


    Continue lendo

    quarta-feira, 14 de novembro de 2012

    segunda-feira, 12 de novembro de 2012

    (Java Jr - Parte XIV) - Parâmetros com retorno

    ,

    Olá galera do java aberto, estamos terminando a saga de tutoriais para Java Júnior e logo vamos criar uma nova categoria para java para web que é mais avançado.

    Nesse tutorial vamos aprender a como usar métodos com retorno, que nada mais é que retornar um valor após executar um método.

    Vamos lá.

    Vamos apresentar o seguinte desafio.

    Crie uma calculadora que tenham as quatros operações básicas, e também uma função para que calcule a tabuada de um número informado, podendo escolher duas maneiras para apresentar o resultado como de ordem crescente e decrescente.

    Entendendo a lógica, sempre quando formos fazer um exercício ou programar, nós temos que dividir o que devemos fazer, isso também serve para matemática.

    1ª Parte: Temos que criar quatro funções, que são as funções de somar, subtrair, multiplicar e dividir.
    2ª Parte: Criar uma função para calcular uma tabuada de ordem crescente e decrescente.

    No artigo anterior nós aprendemos a como utilizar parâmetros, mas do modo normal, agora vamos usar de um modo diferente, vamos retornar um valor e também utilizar um método que seja dinâmico.

    Vamos pensar
    Será que podemos criar um método que chame outro método? Como?
    Será que podemos criar um método somente que faça tudo isso? Como?
    Será que podemos criar um método que chame outro método para calcular funções básicas e outro para calcular a tabuada? Como?

    Sim, é possível fazer isso de muitas outras maneiras, isso fica a critério do programador, mas nesse tutorial eu vou usar o segundo exemplo um método que faça tudo, ou seja, ele tem quer dinâmico.

    Lembrando, que deixei um pouco mais complicado, pois misturei vários assuntos da programação, como estrutura de repetição FOR e VETOR, então quem não entende um pouco vai ter que estudar, fiz de propósito para poder forçar você a estudar um pouquinho mais.

    Quem trabalha com Web ou pretende, parâmetros com retorno, junto com estrutura de repetição, é de lei aprender sem dúvida, trabalho com web e desktop, na web utiliza-se muito, pois deixa menos código e é mais fácil dar manutenção é só entender. Para os iniciantes não vai ser um pouco fácil, mas nada que algumas horinhas de estudo não posso ajudar.

    Abaixo segue a classe principal e logo depois a classe que vai servir como molde para o objeto para poder fazer esses calculos.



    Classe para calculo




    Continue lendo

    sexta-feira, 9 de novembro de 2012

    Mascara para IP

    ,



    Estava eu procurando uma forma de criar uma mascara em um jtextfield, para certificar que o usuário digitou um IP válido. Depois de muita procura no google, encontrei um exemplo que utiliza expressões regulares para testar o valor digitado pelo usuário.
    Para isso coloque um jFormattedTextfield em um jFrame qualquer crie a seguinte classe:



    E coloque o seguinte código em seu jFrame para utilizar a expressão regular:
    No lugar de “txtip” coloque o nome do seu jFormattedTextfield. 

    Fonte(rsteinhorst)
    Continue lendo

    quinta-feira, 8 de novembro de 2012

    quinta-feira, 1 de novembro de 2012

    Manipulação de arquivos

    ,

    Ola  Galera do Java
    Resolvi publicar sobre a manipulação de arquivos: CLASS  Java.io.File.
     Bom como todos já sabem toda class tem seus métodos.E a maneira que utilizamos e a mesma de guando criamos as nossas próprias class e próprios métodos.
    Simples assim.
    Class: Java.io.File
    Métodos: 
    getName
    Retorna o nome do arquivo.
    renameTo
    Renomeia o arquivo.
    exists
    Verifica se o arquivo existe.
    canWrite
    Verifica se é possível escrevet no arquivo.
    canRead
    Verifica se um arquivo pode ser lido.
    isFile
    Verifica se o caminho definido é um arquivo.
    lastModified
    Recupera a data da última alteração do arquivo.
    length
    Tamanho do arquivo.
    delete
    Deleta o arquivo.
    getPath
    Retorna o nome do diretório.
    getAbsolutePath
    Nome completo do diretório.
    getParent
    Retorna os diretórios acima do arquivo.
    isDirectory
    Verifica se o caminho definido é um diretório.
    isAbsolute
    Verifica se o caminho é absoluto.
    mkDir
    Cria um diretório.
    list
    Lista arquivo no diretório.

    Estes métodos e simples de se usar.Logo Abaixo tem uma demonstração.Conforme for sendo possível eu irei publicando sobre as Class. 


    Bom e isso ai,eu parei por alguns minutos lendo sobre file e fiz esse pequeno código que só mostras como e fácil utilizar as class Java.io.File do Java.

    Fonte(leandroanjos)
    Continue lendo
     

    Java Aberto Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger