Tutorial 4 : Intents - Comunicação e Transferência de Dados entre Activitys
Comunicação entre Activitys
Para comunicar entre activitys (da mesma aplicação ou não), temos de usar intents, através dos intents podemos aceder a camera, contactos e todas as activitys disponíveis no Sistema Operativo. Usamos os intents inclusive para comunicarmos entre activitys da nossa aplicação. Um intent pode apenas aceder a activity (startactivity) ou aceder e esperar por um resultado(startActivityforResult). Ex: Intent i = new Intent(Activity.this, image_view_full_screen.class); startActivity(i); O código acima abre activity image_view_full_screen. Assim que a activity abrir a activity que executou este código fica no “backstack”( um repositório em que quando se clica o botão back abre ordenadamente as activitys). Intent cam_ImagesIntent = new Intent(Intent.ACTION_GET_CONTENT); cam_ImagesIntent.setType("image/*"); startActivityForResult(cam_ImagesIntent,CAMERA_IMAGES_REQUEST); O código acima abre todas as fotos existentes no dispositivo . E espera pela foto por isso o uso do startActivityForResult. |
|
Transferência de Dados entre Activitys
A transferrencia de dados entre activitys e’ passado atraves do intent, o intent pode transportar dados de tipos primitivos como String, Int, etc... Ele pode tambem transportar objectos se os objectos e seus atributos serem “seriazible”. Para transportar os dados usamos a intrucao putExtra() Como no Exemplo: Intent.putExtra("codigo_nome_atributo", //Tem de ser String "atributo a ser transportado"); //Pode ser qualquer dado No caso dos objectos antes de passar pelo putExtra temos de implementar Seriazible, como no Exemplo: public class objecto implements Serializable { } Na outra (a segunda a qual nos abrimos) Activity para obter os dados Extra mandados na outra activity buscamos o intent pelo getIntent(), e atraves dos metodos getBooleanExtra(codigo_nome_atributo), getStringExtra(codigo_nome_atributo), etc... Para buscar um objecto usamos o getSeriazibleExtra(codigo_nome_atributo), Ex: Objecto O = (Objecto) getActivity().getIntent().getSerializableExtra("objecto"); [Lembre-se Sempre de Declarar as Activitys no Android Manifest antes de usalas] |
Em anexo um projecto de uma aplicação sobre o uso de activitys.
intent_tutorial.rar | |
File Size: | 1008 kb |
File Type: | rar |