Mobile

Android – Injeção de dependência com RoboGuice (Parte 2)

 

Dando continuidade ao post anterior (https://www.redspark.io/2012/08/01/android-injecao-de-dependencia-com-roboguice/), neste post eu darei alguns outros exemplos de utilização do RoboGuice, de forma simples. Para a injeção de outras classes, conteudos e valores. Seguem alguns trechos de código que exemplificam a utilização de algumas anotações do RoboGuice:

 

Bom, chega de papo e vamos aos exemplos:
 

O trecho a seguir exemplifica a injeção de uma view em uma activity através da anotação @ContentView:
 
[cc lang=”java”]

@ContentView(R.layout.main)
public class HelloAndroidActivity extends RoboActivity {

//Código da aplicação
}
[/cc]

O código acima, sem a utilização do RoboGuice, ficaria da seguinte forma:
[cc lang=”java”]

@ContentView(R.layout.main)
public class HelloAndroidActivity extends RoboActivity {

/* (non-Javadoc)
* @see roboguice.activity.RoboActivity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
[/cc]
 
A diferença em termos de linha de código é insignificante, mas para a separação de configurações e codificação, isto é bastante importante.

Outros exemplos de utilização do RoboGuice são a injeção de classes/serviços e resources, como pode-se observar no trecho de código a seguir:

 
[cc lang=”java”]
@ContentView(R.layout.main)
public class HelloAndroidActivity extends RoboActivity {

@Inject
private MyService service;

@InjectResource(R.string.mensagemDeBoasVindas)
String mensagemDeBoasVindas;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
// Implementação do método…

}
}
[/cc]

 


Este foi mais um post da série Android, espero que tenham gostado. Quaisquer dúvidas, sugestões e/ou reclamações, comentem!

_________________________________________

Lucas Oliveira – Analista Programador na redspark.
Bacharel em Sistemas de Informação pela Universidade de São Paulo.
@OliveiraLima_

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Compartilhe isso: