Ao utilizar uma API mais recentes (API level 23) com suporte a API’s mais antigas (API Level 15), temos um pequeno problema ao tentarmos alterar o background de forma programável.

“Call requires API level 23 (current min is 15)…”

Para resolver este problema, o Android oferece o ContextCompat:

 

Então para exibir o ProgressDialog:

Para esconder o ProgressDialog:

 

 

Qualquer desenvolvedor Android já se deparou com o problema de ter que usar a referência da própria Activity ao invés de usar getApplicationContext(). Tanto Activity e getApplicationContext() são  instâncias de Context, porém a diferença é que Activity possui o contexto da própria Activity, e getApplicationContext() é o Context da Aplicação.

Uma aplicação Android possui diversos tipos de Context, tais como:

  • Activity
  • Application
  • Service
  • BroadcastReceiver
  • ContentProvider

Quando utilizar Activity, getApplicationContext() e etc ?

Depois de pesquisar um pouco, encontrei uma tabela indicando quando utilizar cada caso:

Application Activity Service ContentProvider BroadcastReceiver
Show a Dialog NO YES NO NO NO
Start an Activity NO1 YES NO1 NO1 NO1
Layout Inflation NO2 YES NO2 NO2 NO2
Start a Service YES YES YES YES YES
Bind to a Service YES YES YES YES NO
Send a Broadcast YES YES YES YES YES
Register BroadcastReceiver YES YES YES YES NO3
Load Resource Values YES YES YES YES YES

 

  1. An application CAN start an Activity from here, but it requires that a new task be created.  This may fit specific use cases, but can create non-standard back stack behaviors in your application and is generally not recommended or considered good practice.
  2. This is legal, but inflation will be done with the default theme for the system on which you are running, not what’s defined in your application.
  3. Allowed if the receiver is null, which is used for obtaining the current value of a sticky broadcast, on Android 4.2 and above.

Fonte: https://possiblemobile.com/2013/06/context/

É muito comum, ao iniciarmos uma nova activity, que queiramos ao seu termino receber os dados dessa outra activity e então executar uma ação.

Vejamos um exemplo:

Vamos supor que eu tenha uma activity ListaDeProdutos e AddEditProduto. Dentro da activity ListaDeProdutos eu clico no botão para adicionar um novo produto, e quero receber o resultado dessa adição de produtos na minha activity ListaDeProdutos. Pois bem, é para isso que utilizamos o método sobrescrito onActivityResult() na activity que queremos receber o resultado. Segue abaixo o código do exemplo para ilustrar como utilizar estes métodos.

 

 

Sempre é cômodo ter aquela botãozinho de “voltar” para a Activity anterior, e para adicioná-lo é muito simples, basta adicionar uma diretiva em seu “AndroidManifest.xml“.

 

 

MainActivity corresponde a Activity para a qual a aplicação deve voltar ao clicarmos em “voltar”.

Neste tutorial estarei ensinando a construir um serviço Restful no Android utilizando Android Annotations v4.2. Utilizarei como exemplo um servidor PHP.

Bibliotecas utilizadas:

  • Android Annotations v4.2
  • Spring Framework v2.0.0.M3 (Versão para Android)
  • Jackson Databind v2.8.5

Caso queira se aprofundar mais nos recursos descritos aqui neste tutorial recomendo acessar as seguintes documentações:

  • https://github.com/androidannotations/androidannotations/wiki/Rest-API
  • https://github.com/FasterXML/jackson-annotations

Para baixar o projeto completo: RestApplication

 

O Webservice em PHP:

Agora a aplicação Android

 

 

A classe Usuário descrita abaixo é o nosso Model, ela fará o bind com o webservice, isso é possível graças ao Jackson Bind:

Agora definiremos a nossa classe Rest:

O IP 10.0.2.2 deverá ser substituído pelo endereço do seu Webservice. Caso esteja usando um servidor localhost, matenha este IP para que o emulador possa acessar o localhost, pois se você colocar “localhost” no lugar deste IP, o emulador não reconhecerá o seu ambiente localhost.

E por fim a nossa View:

 

 

 

MPAndroidChart é uma biblioteca para Android utilizada para construir gráficos. Justamente pela sua simplicidade e riqueza de recursos, resolvi postar este breve tutorial sobre como utilizá-la para construir um gráfico customizado de Faturamento X Mês. Utilizaremos em nosso exemplo MPAndroidChart v3.0.1.

Repositório e documentação oficial: https://github.com/PhilJay/MPAndroidChart

Demo

Para baixar o projeto clique aqui.

 

 

build.gradle:

MainActivity.java

activity_main.xml

 

A versão do do Android SDK 22 requer no mínimo o JDK 1.7. Já o Android SDK 24 requer no mínimo o JDK 1.8.

Como alterar a versão do JDK no Android Studio ?

Considerando que você já possui o JDK 1.8 instalado, para alterar a versão do JDK no Android Studio acesse:

File > Project Structure > SDK Location

Altere então o campo JDK Location para o diretório de instalação do JDK 1.8