Professional Documents
Culture Documents
Lars Vogel
Verso 8,7 Copyright 2009 - 2011 Lars Vogel 2011/11/24
Histrico da Reviso
Reviso 0,1 Criado Reviso 0,2-8,7 correo de bugs e melhorias 2009/07/04 2009/07/07 - 2011/11/24
Desenvolvimento com Android Gingerbread e Eclipse Este tutorial descreve como criar aplicativos Android com o Eclipse. baseado no Eclipse 3.7 (Indigo), Java 1.6 e 4.0 do Android (Ice Cream Sandwich).
ndice 1. O que Android? 1.1. Sistema Operacional Android 1.2. Importantes componentes Android 1.3. Dalvik Virtual Machine 1.4. Segurana e permisses 2. Android Application Architecture 2.1. AndroidManifest.xml 2.2. R.java, recursos e bens 2.3. Referncia aos recursos em arquivos XML 2.4. Atividades e Layouts 2.5. Atividades e Ciclo de Vida 2.6. Contexto 3. Instalao 3.1. Eclipse e automtico Android SDK 3.2. Instalar manualmente o Android SDK 3.3. Instalar uma verso especfica para Android 3.4. Cdigo-fonte do Android 4. Usando o emulador 4.1. Criar um emulador de dispositivo Android 4.2. Atalhos emulador 4.3. Execuo 5. Tratamento de erros e problemas tpicos 5.1. Projeto limpa 5.2. LogCat 5.3. Emulador no se inicia
5.4. Mensagem de erro para @ override 5.5. Importaes em falta 5.6. Eclipse Dicas 6. Seu primeiro projeto Android 6.1. Criar projeto 6.2. Duas faces de coisas 6.3. Criar atributos 6.4. Adicionar Elementos UI 6.5. Editar propriedades UI 6.6. Cdigo do seu aplicativo 6.7. Incio do Projeto 7. Iniciando um aplicativo implantado 8. Menus e Barra de ao 8.1. Definio de entradas do menu 8.2. Barra de guias de ao 8.3. Menus de contexto 9. Tutorial: Menus e Barra de ao 9.1. Projeto 9.2. Adicionar um menu de recursos XML 10. Preferncias 11. Tutorial: Preferncias 11.1. Usando as preferncias 11.2. Correr 12. Dilogos atravs do AlertDialog 13. Layouts 14. TableLayout 14.1. Viso global 14.2. Exemplo 15. ContentProvider 15.1. Viso global 15.2. Criar contatos no seu emulador 15.3. Usando o Provedor de Contedo Contato 16. ScrollView 17. DDMS perspectiva e pontos de vista importantes 17.1. DDMS - Debug Dalvik Server Monitor 17.2. Ver LogCat 17.3. Explorador de arquivos 18. Concha 18.1. Android Debugging Bridge - Shell 18.2. Desinstalar um aplicativo via adb 18.3. Console emulador via telnet 19. Implantar o aplicativo em um dispositivo real 20. Obrigado 21. Perguntas e Discusso 22. Links e Literatura 22.1. Cdigo Fonte 22.2. Recursos Android 22.3. vogella Recursos
1. O que Android?
1.1. Sistema Operacional Android
Android um sistema operacional baseado em Linux com uma interface de programao Java. Ele fornece ferramentas, por exemplo, um compilador, depurador e um emulador de dispositivo, bem como a sua prpria mquina virtual Java (Dalvik Virtual Machine - DVM). Android oficialmente guiada pela Open Handset Alliance, mas na realidade o Google lidera o projeto. Android suporta 2-D e 3-D grficos usando as bibliotecas OpenGL e suporta o armazenamento de dados em um banco de dados SQLite. Todos os aplicativos do Android roda em seu prprio processo e sob a sua identificao de usurio prprias, que gerado automaticamente pelo sistema Android durante a implantao. Portanto, a aplicao isolado de outros aplicativos em execuo e uma aplicao mal-comportados no pode facilmente prejudicar outras aplicaes Android.
Atividade - representa a camada de apresentao de uma aplicao Android, por exemplo, uma tela que o usurio v. Uma aplicao Android pode ter vrias atividades e pode ser comutado entre eles durante a execuo da aplicao. Visitas - a interface de usurio de um Atividades construdo com classes widget que inerente daandroid.view.View . O layout dos pontos de vista gerenciado por android.view.ViewGroups .Visto muitas vezes tm atributos que podem ser usados para alterar sua aparncia e comportamento. Servios - executar tarefas em segundo plano, sem fornecer uma interface do usurio. Eles podem notificar o usurio atravs do quadro de notificao no Android. ContentProvider - fornece dados para aplicaes, atravs de um provedor de contedo a sua aplicao pode compartilhar dados com outras aplicaes. Android contm um DB SQLite que pode servir como
provedor de dados Intenes - so mensagens assncronas que permitem a aplicao de solicitar a funcionalidade de outros servios ou atividades. Um aplicativo pode chamar diretamente um servio ou atividade (inteno explcita) ou
pedir o sistema Android para os servios registrados e pedidos de inteno (intenes implcitas). Por exemplo, o aplicativo pode pedir atravs de uma inteno para uma aplicao em contacto. Aplicaes registar-se a uma inteno atravs de um IntentFilter . Intenes um conceito poderoso, pois
permitem a criao de aplicaes de baixo acoplamento. BroadcastReceiver - recebe as mensagens do sistema e intenes implcitas, pode ser usado para reagir s condies alteradas no sistema. Um aplicativo pode registrar-se como BroadcastReceiverpara determinados eventos e pode ser
iniciado se tal evento ocorrer. Widgets - componentes interativos primrios utilizados na homescreen Android para mostrar alguns dados e permitir que o usurio tenha acesso rpido a informaes
Outros componentes so pastas Android Live e Android Wallpapers Live. Pastas ao vivo exibir dados na tela inicial, sem lanar o aplicativo correspondente.
2.1. AndroidManifest.xml
Uma aplicao Android descrito no arquivo AndroidManifest.xml . Este arquivo deve declarar todas asActividades , Servios , BroadcastReceivers e ContentProvider da aplicao. Deve conter tambm as permisses necessrias para a aplicao. Por exemplo, se a aplicao requer acesso rede deve ser especificado aqui. AndroidManifest.xml pode ser pensado como o descritor de implantao de um aplicativo Android.
<Manifesta />
O pacote de atributo define o pacote base para os seguintes elementos Java. Ele tambm deve ser exclusivo como o Android Marketplace s permite a
aplicao de um pacote especfico uma vez. Portanto, um bom hbito usar seu nome de domnio reverso como um pacote para evitar colises com outros desenvolvedores. android: versionName e android: versionCode . especificar a verso do seu aplicativoversionName . o que o usurio v e pode ser qualquer cadeia versionCode deve ser um inteiro e do Mercado Android usa isso para determinar se voc tiver fornecido uma verso mais recente para acionar a atualizao no dispositivos que tenham o aplicativo instalado. Voc geralmente comeam com "1" e aumentar este valor por um, se voc roll-out uma nova verso de sua aplicao. A tag <activity> define uma atividade , neste exemplo que aponta para a classe "de.vogella.android.temperature.Convert". Um filtro inteno registrado para esta classe que define que esteAtividade iniciado assim que o aplicativo iniciado (ao android: name = "android.intent.action.MAIN" ). A categoria de definio da categoria android: name = "android.intent.category.LAUNCHER" define que esta aplicao adicionada ao diretrio do aplicativo no dispositivo Android. O @ string / app_name valor referem-se a arquivos de recursos que contm os valores reais. Isto torna mais fcil para fornecer recursos diferentes, strings, por exemplo, cores, cones, para diferentes dispositivos e facilita a traduo de aplicaes. A "usa-sdk" parte do "AndroidManifest.xml" define a verso SDK mnimo a sua aplicao vlida. Isso vai impedir que o aplicativo a ser instalado em dispositivos com verses mais antigas SDK.
acessar uma String com o ID de referncia R.string.yourString usar o mtodogetString (R.string.yourString)); . R.java automaticamente mantida pelo ambiente de desenvolvimento Eclipse, alteraes manuais no so necessrias. Enquanto o diretrio res contm valores estruturados, que so conhecidos para a plataforma Android do diretrioativos podem ser usados para armazenar qualquer tipo de dados. Em Java voc pode acessar esses dados atravs do AssetsManager eo mtodo getAssets () .
que dar o elemento UI um id nico atravs do android: id atributo. Para atribuir um ID de novo para uma utilizao elemento UI @ + id / yourvalue . Pela converso isso vai criar e atribuir um novo id yourvalue ao elemento UI correspondente. No seu cdigo Java voc pode mais tarde aceder a estes elementos UI atravs do mtodofindViewById (R.id.yourvalue) . Definio de layouts via XML geralmente a melhor maneira de como este separa a lgica de programao a partir da definio de layout. Ele tambm permite a definio de layouts diferentes para dispositivos diferentes.Voc tambm pode misturar as duas abordagens.
onSaveInstanceState () - chamado se a atividade interrompida. Usado para salvar dados de modo que a atividade pode restaurar seus estados, se re-iniciados onPause () - sempre chamado se a atividade termina, pode ser usado para liberao de recursos ou salvar dados onResume () - chamado se a atividade re-iniciados, podem ser usados para inicializar os campos
A atividade tambm ser reiniciado se uma "mudana de configurao", assim chamada acontece. A mudana de configurao, por exemplo, acontece quando o usurio altera a orientao do dispositivo (vertical ou horizontal). A atividade neste caso reiniciado para habilitar a plataforma Android para carregar diferentes recursos para essas configurao, por exemplo, layouts para o modo vertical ou horizontal. No emulador voc pode simular a mudana de orientao via CNTR + F11 . Voc pode evitar um reincio do seu pedido de algumas mudanas de configurao atravs do configChanges atributo em sua definio a atividade em seu AndroidManifest.xml . A atividade a seguir no ser reiniciado em caso de mudanas de orientao ou posio do teclado fsico (oculto / visvel).
2.6. Contexto
A classe android.content.Context fornece as conexes com o sistema Android. a interface para informao global sobre o ambiente de aplicao. Contexto tambm fornece acesso ao Android Servios , Servio theLocation por exemplo. Como Atividades e Servios de estender a classe Context voc pode acessar diretamente o contexto atravs deste .
3. Instalao
A seguir pressupem que voc j tenha instalado o Eclipse. Para mais detalhes consulte Tutorial Eclipse .
A caixa de dilogo permite que voc instale novo pacote e tambm permitem que voc exclu-los. Selecione "Pacotes disponveis" e abra o "Terceiro Addons". Selecione a API do Google 14 (Android 4.0) verso do SDK e clique em "Install".
Pressione o boto "Install" e confirme a licena para todo o pacote. Aps a instalao reinicie o Eclipse.
4. Usando o emulador
4.1. Criar um emulador de dispositivo Android
As ferramentas incluem um emulador Android. Este emulador se comporta como um dispositivo Android real na maioria dos casos e permite que voc teste a sua aplicao sem ter um dispositivo real. Voc pode emular um ou vrios dispositivos com configuraes diferentes. Cada configurao definida atravs de um "dispositivo virtual Android" (AVD). Para definir um AVD abrir o "Gerenciador de AVD" atravs do Windows Gestor de AVD e pressione "Novo".
Digite o seguinte.
Podemos tambm selecionar a caixa "Enabled" para Snapshots. Isto far a segunda partida do dispositivo virtual muito mais rpido. Na imprensa final no boto "Create AVD". Isto ir criar o dispositivo e exibi-lo sob o ttulo "Os dispositivos virtuais".Para testar se sua configurao est correta, selecione o dispositivo e pressione "Start". Depois (muito tempo) o dispositivo deve ser iniciado.
Obviamente voc pode usar o emulador atravs do teclado do lado direito do emulador. Mas tambm existem alguns atalhos que so teis agradvel. Alt + Enter maximiza o emulador. Agradvel para demos. Ctrl + F11 muda a orientao do emulador. F8 voltas rede on / off.
4.3. Execuo
Tente usar uma resoluo menor para o seu emulador como por exemplo HVGA. O emulador fica mais lento quanto mais pixels para tornar as suas necessidades como ele est usando software de renderizao. Alm disso, se voc tem memria suficiente no seu computador, adicionar pelo menos 1 GB de memria para seu emulador. Este o valor "tamanho da memria RAM do dispositivo" durante a criao da AVD. Tambm definir o sinalizador "Enabled" para Snapshots. Isto ir salvar o estado do emulador e deix-lo comear muito mais rpido.
5.2. LogCat
A viso LogCat mostra a mensagem de log do seu dispositivo Android e ajudlo a anlise de problemas. Por exemplo excees Java em seu programa iria ser mostrado aqui. Para abrir essa viso, selecione "Window -> Show View -> Other -> Android - LogCat>" a partir do menu.
Enquanto "res" contm valores estruturados, que so conhecidos para a plataforma Android do diretrio "assets" pode ser usado para armazenar qualquer tipo de dados. Em Java voc pode acessar esses dados atravs do AssetsManager eo getAssets mtodo ().
Adicione tambm o seguinte "String" atributos. Atributos de cadeia permite traduzir a aplicao em um momento posterior. Tabela 1. Atributos cadeia Nome Valor Celsius para Celsius fahrenheit para Fahrenheit calc Calcular
<? Xml version = "1.0" encoding = "utf-8"?> <resources> <string nome = "Ol" > Ol, Mundo Convert! </ string>
<string nome = "app_name" > Temperatura Celsius </ string> <string nome = "fahrenheit" > para Fahrenheit </ string> <string nome = "calc" > Calcular </ string> </ resources>
Selecione "res / layout / main.xml" e abra o editor Android atravs de um clique duplo. Este editor permite criar a interface do usurio atravs de arrastar e soltar ou atravs do cdigo-fonte XML. Voc pode alternar entre as duas representaes por meio das guias na parte inferior do editor. Para alterar a posio e agrupamento elementos que voc pode usar a vista de destaques. A seguir mostra um screenshot da viso Palette partir do qual voc pode arrastar e soltar elementos UI novos em seu layout. Por favor, note que o "Palette" muda a vista com freqncia para a sua viso pode ser um pouco diferente.
Boto direito do mouse sobre o objeto de texto "Ol Mundo, Ol!" No layout. Selecione Excluir no menu pop-up para remover o objeto de texto. Ento, a partir da "paleta" de visualizao, selecione campos de texto e localizar "Plain Text". Arraste este sobre o layout para criar um campo de entrada de texto. Todos os tipos de objetos na seo de "campos de texto" derivam da classe "EditText", eles apenas especificar atravs de um atributo adicional que tipo de texto pode ser usado.
Agora selecione a paleta seo "Forma Widgets" e arrastar um "RadioGroup" objeto no layout. O nmero de botes de rdio adicionado ao grupo de botes de rdio depende da sua verso do Eclipse. Certifique-se que h dois botes de rdio, excluindo ou adicionando botes de rdio para o grupo. Da Paleta Widgets Formulrio seo, arraste um objeto Button para o layout. O resultado dever ser parecido com o seguinte.
A partir de agora eu suponho que voc capaz de usar o menu de propriedades sobre os elementos da interface do usurio. Voc pode editar o arquivo XML ou modificar as propriedades via boto direito do mouse. Defina a propriedade "Checked" a verdade para o RadioButton em primeiro lugar. Atribuir "calc" para a propriedade de texto do seu boto e atribuir "myClickHandler" para o "onClick" propriedade. Definir o "Input tipo" propriedade para "numberSigned" e "numberDecimal" no seu EditText. Todos os seus controles de interface do usurio esto contidos em um LinearLayout. Queremos atribuir uma cor de fundo a esta LinearLayout. Boto direito do mouse em um espao vazio no modo layout grfico, em seguida, selecione Propriedades Outros Todos por Nome Background . Selecione "Color" e depois "MyColor" na lista.
pacote de.vogella.android.temperature;
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.RadioButton;
import android.widget.Toast;
pblico
@ Override pblica vazio onCreate (Bundle savedInstanceState) { super- onCreate (savedInstanceState).; setContentView (R.layout.main); text = (EditText) findViewById (R.id.editText1);
/ / Este mtodo chamado de boto de clique porque ns atribudo o nome para o / / "Na propriedade Click" do boto pblica vazio myClickHandler (Ver view) { interruptor (view.getId ()) { caso R.id.button1: RadioButton celsiusButton = (RadioButton) findViewById (R.id.radio0); RadioButton fahrenheitButton = (RadioButton) findViewById (R.id.radio1); se (text.getText () comprimento. () == 0 ) { Toast.makeText ( este , "Por favor insira um nmero vlido" , . Toast.LENGTH_LONG) show (); retorno ; }
flutuar inputValue (toString text.getText () ().) = Float.parseFloat; se (celsiusButton.isChecked ()) { text.setText (String . ValueOf (convertFahrenheitToCelsius (inputValue))); celsiusButton.setChecked (false); fahrenheitButton.setChecked (true); } mais { text.setText (String . ValueOf (convertCelsiusToFahrenheit (inputValue))); fahrenheitButton.setChecked (false); celsiusButton.setChecked (true); } quebrar ; } }
retorno ((Fahrenheit - 32 ) * 5 / 9 ); }
/ / Converte para fahrenheit privada { retorno ((celsius * 9 ) / 5 ) + 32 ; } } flutuam convertCelsiusToFahrenheit ( flutuam celsius)
Digite um nmero, selecione a sua converso e pressione o boto. O resultado deve ser apresentado e, a outra opo deve ser selecionada.
8. Menus e Barra de ao
8.1. Definio de entradas do menu
Android fornece duas maneiras possveis para mostrar aes globais que o usurio pode selecionar. O primeiro o uso da barra de ao no aplicativo. A Barra de ao um recurso de janela na parte superior da atividade que pode exibir o ttulo da atividade, os modos de navegao e outros itens interativos. A segunda opo que o aplicativo pode abrir um menu que mostra aes adicionais atravs de um menu pop-up.Tpicos que voc define as entradas de menu em uma forma que eles so adicionados barra de ao, se houver espao suficiente disponvel na barra de ao e, se no que restantes itens do menu so exibidos no menu pop-up. O menu de opes ea barra de ao de sua atividade preenchido pelo onCreateOptionsMenu mtodo () de sua atividade. Neste mtodo, voc pode criar o menu de programao ou voc pode usar um dos recursos pr-definidos XML que insuflado atravs da classe "MenuInflator". Cada atividade tem j uma instncia da classe disponveis e neste caso pode ter acessado atravs do mtodo getMenuInflator (). onCreateContextMenu () chamado apenas uma vez. Se voc quer influenciar o menu mais tarde voc tem que usar o mtodo onPrepareOptionsMenu ().
<LinearLayout />
Isto ir criar um novo arquivo "mainmenu.xml" na pasta "res menu /" do seu projeto. Android fornece um editor bom para editar este arquivo, infelizmente este editor nem sempre usado automaticamente. Para usar este editor boto direito do mouse sobre o arquivo de menu e selecione Abrir com Menu Editor Android .
Interruptor se necessrio, para a guia "Layout" do editor. Pressione Adicionar e selecione "Item". Manter o valor seguinte. Isto define as entradas no seu menu. Vamos tambm definir que a entrada de menu exibido na barra de ao se no houver espao suficiente disponveis.
Alterar a sua atividade de classe "OverviewActivity" para o seguinte. O mtodo OnCreateOptionsMenu usado para criar o menu. O comportamento em "onOptionsItemSelected" est codificado para mostrar um brinde e logo chamar as configuraes de preferncias. No caso de voc desejar desativar ou ocultar itens de menu que voc pode usar o mtodo "onPrepareOptionsMenu", que chamada toda vez que o menu chamado.
pacote de.vogella.android.socialapp;
import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Toast;
pblico
de classe OverviewActivity estende Atividade { @ Override pblica vazio onCreate (Bundle savedInstanceState) { super- onCreate (savedInstanceState).; setContentView (R.layout.main); }
Executar o aplicativo. Como no h espao suficiente na barra de ao o item ser exibido l. Se houvesse mais itens voc pode pressionar "Menu" no emulador para v-los. Se voc selecionar o item de menu voc deve ver uma mensagem de informao de pequeno porte.
Os dois "Preferncias" botes ainda no esto ativos. Vamos utiliz-las no prximo captulo.
10. Preferncias
Android suporta o uso de preferncias para permitir que voc salvar os dados para sua aplicao. Preferncias so armazenados como valores fundamentais. A definio de preferncias tambm pode ser feito atravs de um recurso XML.
Android fornece a classe "PreferenceActivity", que estende a classe Activity. PreferenceActivity suporta a manipulao simples de preferncias. Esta atividade pode carregar uma definio de recursos preferncia atravs do mtodo addPreferencesFromResource (). Para a comunicao entre diferentes componentes Android usa Intenes. Tipicamente o PreferenceActivity iniciado a partir de outra atividade atravs de um Intent. Em seu aplicativo voc pode acessar o gerenciador de preferncia atravs do seguinte:
Para criar ou alterar as preferncias que voc tem que chamar o edit () mtodos. Depois de ter alterado o valor que voc tem que chamar commit () para aplicar as alteraes.
Vamos continuar usando o projeto de exemplo "de.vogella.android.social". Criar um Android recurso XML "preferences.xml" de "PreferenceScreen" tipo.
Abra o arquivo atravs do boto direito do mouse e clique em Abrir com Resource Editor Android XML .Pressione Adicionar, adicionar um "PreferenceCategory" e adicione duas preferncias "EditTextPreferences" para esta categoria: "Usurio" e "Password".
Voc tambm pode manter outras propriedades para EditTextField, por exemplo, o inputMethod. Adicionar, por exemplo, o seguinte atributo definio XML de sua senha para fazer o input citado com * .
Criar a classe "MyPreferencesActivity" com PreferenceActivity estende. Esta atividade ir carregar o "preference.xml" e permitir manter os valores.
pacote de.vogella.android.socialapp;
pblico
de classe MyPreferencesActivity estende PreferenceActivity { @ Override pblica vazio onCreate (Bundle savedInstanceState) {
Para fazer com que esta classe est disponvel como uma atividade para Android voc precisa registr-lo em seu arquivo "AndroidManifest.xml". Selecione "AndroidManifest.xml" e na guia "Application". V at o botton da viso e adicionar sua nova atividade atravs do boto "Add".
Para fazer uso da nossa actividade nova preferncia ea preferncia valores que ajustar o "OverviewActivity". O primeiro boto ir mostrar os valores atuais das preferncias atravs de um brinde e no segundo boto ir reverter o nome de usurio mantidos para demonstrar como voc pode mudar as preferncias por meio de cdigo.
pacote de.vogella.android.socialapp;
import android.app.Activity;
import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast;
pblico
de classe OverviewActivity estende Atividade { SharedPreferences preferncias; @ Override pblica vazio onCreate (Bundle savedInstanceState) { super- onCreate (savedInstanceState).; setContentView (R.layout.main); Boto = (Button) findViewById (R.id.Button01); / / Initialize preferncias
String username = preferences.getString ( "username" , "n / a" ); String senha = preferences.getString ( "password" , "n / a" ); showPrefs (username, password); }
});
ButtonChangePreferences boto = (Button) findViewById (R.id.Button02); buttonChangePreferences.setOnClickListener ( nova OnClickListener () { pblicas vazio onClick (View v) {
privada
vazio showPrefs (String username, password String) { Toast.makeText ( OverviewActivity. este , "Entrada:" + username + "e senha:" + Senha,
privada
vazio updatePreferenceValue () { Editor edit = preferences.edit (); String username = preferences.getString ( "username" ,
"n / a" ); / / Ns apenas reverter o nome do usurio atual e salvar novamente StringBuffer buffer = nova StringBuffer (); para ( int i = username.length () - 1 ; i> = 0 ; i -) { buffer.append (username.charAt (i));
} edit.putString ( "username" , buffer.toString ()); edit.commit (); / / Um brinde uma viso contendo uma mensagem rpida pouco para o / user /. Damos um pouco feedback Toast.makeText (OverviewActivity. este , "revertidas corda seqncia de nome de usurio." , . Toast.LENGTH_LONG) show (); }
Para abrir a atividade nova preferncia, vamos utilizar o mtodo onOptionsItemSelected (). Mesmo que atualmente temos apenas uma opo em nosso menu, usamos um interruptor para estar pronto para vrias novas entradas de menu. Para ver os valores atuais das preferncias ns definimos um boto e use a classe "PreferenceManager" para obter o sharedPreferences.
/ / Este mtodo chamado quando o menu selecionado @ Override pblica boolean onOptionsItemSelected (item MenuItem) { interruptor (item.getItemId ()) { / / Ns temos apenas um menu de opes
caso R.id.preferences: atividade Preferncias / Lanamento / Inteno i = nova Intent (OverviewActivity. este , MyPreferencesActivity. classe ); startActivity (i); / / Alguns feedback para o usurio Toast.makeText (OverviewActivity. este , "Enter suas credenciais de usurio." , . Toast.LENGTH_LONG) show (); quebrar ;
} retornar true; }
11.2. Correr
Executar o aplicativo. Pressione o boto "menu" de hardware e, em seguida, selecione o menu "Preferences".Voc deve ser capaz de entrar em suas configuraes de usurio e pressione o boto hardware volta para retornar sua atividade principal. Os valores guardados devem ser exibidos em uma pequena mensagem de windows (Toast) se voc pressionar o boto primeiro. Se voc pressionar o segundo boto o nome de usurio deve ser revertida.
Simples dilogo " android: onClick = "openMyDialog" > </ Button> <LinearLayout />
pacote de.vogella.android.alertdialog;
import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Toast;
pblico
@ Override pblica vazio onCreate (Bundle savedInstanceState) { super- onCreate (savedInstanceState).; setContentView (R.layout.main);
pblica
/ / Cria a AlterDialog Builder builder = nova AlertDialog.Builder ( este ); builder.setMessage ( "Isso vai acabar com a atividade" ); builder.setCancelable (true); builder.setPositiveButton ( "I agree" , novo DialogInterface.OnClickListener () { pblicas vazio onClick (caixa de dilogo DialogInterface, int qual) { ShowMyDialog. deste finish ().; } }); builder.setNegativeButton ( "No, no" , novo DialogInterface.OnClickListener () { pblicas vazio onClick (caixa de dilogo DialogInterface, int qual) { Toast.makeText (getApplicationContext (), "Atividade vai continuar" , Toast.LENGTH_LONG) show ().;
} }); Dilogo AlertDialog builder.create = (); dialog.show (); } retorno } super- onCreateDialog (id).;
Se voc executar o aplicativo e clique com o boto que voc deve consultar o seu dilogo.
Mais informaes sobre os dilogos podem ser encontrados no Android Dialogs documentao padro.
13. Layouts
Android suporta gerenciador de layout padro diferente. LinearLayout coloca todos os seus elementos filho em uma nica coluna ou linha dependendo do atributo orientao. Outros tipos so RelativeLayout FrameLayout e TableLayout. Todos os layouts permitem atributos definidos. Childs tambm pode definir os atributos que podem ser avaliados pelo seu layout pai. Por exemplo, o
14. TableLayout
14.1. Viso global
No captulo anterior ns usamos o LinearLayout que lhe permite widgets de pilha vertical ou horizontal. LinearLayout podem ser aninhadas para alcanar efeitos agradveis. Este captulo ir demonstrar o uso de "TableLayout". Este layout permite que voc organize uma viso em um formato de tabela. Voc especificar por meio da viso de grupo "TableRow" linhas de sua tabela. Depois que voc colocar widgets nas linhas individuais. Sobre o "TableLayout" voc pode definir qual coluna deve ter espao adicional atravs do "android: stretchColumns" atributo. Se vrias colunas devem ter o espao disponvel, voc pode especific-los como uma lista separada por vrgulas. Similar voc pode usar o atributo "android: shrinkColumn", que vai tentar a quebra de palavra o contedo dos widgets especificado eo atributo "android: collapseColums" para definir colunas inicialmente oculto. Via Java voc pode exibir / ocultar essas colunas atravs do mtodo setColumnVisible (). Colunas ser criado automaticamente com base no nmero mximo de itens em uma linha. Por padro cada Widgets cria uma nova coluna na linha. Voc pode especficos via "android: layout_column" coluna um widget deve ir e via "android: layout_span" quantas colunas um widget deve tomar.
Voc tambm pode colocar TableRows no em uma tabela. Desta forma, voc pode por exemplo adicionar divisores entre as suas colunas.
14.2. Exemplo
Criar o projeto "de.vogella.android.layout.table" com a atividade "DemoTableLayout". Mudana "main.xml" para o seguinte.
Alterar a atividade "DemoTableLayout" para o seguinte para usar o boto para esconder a segunda coluna da tabela.
pacote de.vogella.android.layout.table;
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TableLayout;
pblico
de classe DemoTableLayout estende Atividade { privada disposio TableLayout; privada boto Button;
@ Override
pblica
setContentView (R.layout.main); layout = (TableLayout) findViewById (R.id.tableLayout1); button = (Button) findViewById (R.id.collapse);
pblica
layout.setColumnCollapsed ( 1 , layout.isColumnCollapsed (! 1 )); se (layout.isColumnCollapsed ( 1 )) { button.setText ( coluna "Mostrar segundo" ); } mais { button.setText ( "Hide segunda coluna" ); } } }
15. ContentProvider
15.1. Viso global
ContentProvider so usados para fornecer dados de um aplicativo para outro. ContentProvider no armazenam os dados, mas fornecem a interface para outras aplicaes para acessar os dados. O exemplo a seguir ir utilizar um provedor de contexto existente de "Contatos".
Para este exemplo temos alguns contatos mantidos. Selecione o menu inicial e depois a entrada de menu "People" para criar contatos.
O aplicativo ir perguntar se voc quer entrar. Faa o login ou selecione "No agora". Pressione o boto "" Criar um novo contato ". Voc pode criar contatos local.
Terminar de adicionar o seu primeiro contacto. Depois disso, o app permite que voc adicione mais contatos atravs do button.As + resultado, voc deve ter alguns contatos novos em sua aplicao.
Acesso ao provedor de contedo de contato exigem uma certa permisso como nem todas as aplicaes devem ter acesso s informaes de contato. Abra o AndroidManifest.xml, e selecione a guia Permisses. Nessa guia clique no boto "Add" e selecione "Usos permisso". A partir da lista suspensa selecione a entrada "android.permission.READ_CONTACTS". Alterar a codificao da atividade.
pacote de.vogella.android.contentprovider;
import android.app.Activity; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.widget.TextView;
pblico
super- onCreate (savedInstanceState).; setContentView (R.layout.main); TextView ContactView = (TextView) findViewById (R.id.contactview);
Cadeia displayName = cursor.getString cursor ( . GetColumnIndex (ContactsContract.Data.DISPLAY_NAME)); contactView.append ( "Name:" ); contactView.append (displayName); contactView.append ( "\ n" ); } }
privada Cursor getContacts () { / Run / query Uri uri = ContactsContract.Contacts.CONTENT_URI; String [] = projeo nova String [] {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME}; Seleo String = ContactsContract.Contacts.IN_VISIBLE_GROUP + "= '" + ( "1" ) + "'" ; String [] selectionArgs = null; Cadeia SortOrder = ContactsContract.Contacts.DISPLAY_NAME + "COLLATE LOCALIZADA ASC" ;
16. ScrollView
ScrollViews pode ser usado para conter uma viso de que poderia ser grande para caber em uma tela. Se a vista grande o ScrollView ir exibir uma barra de rolagem para o contexto. claro que esta viso pode ser um layout que pode conter outros elementos. Criar um andride projeto "de.vogella.android.scrollview" com a atividade "ScrollView". Crie o seguinte layout e classe.
uma
<LinearLayout android:id="@+id/LinearLayout02" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Submit" android:layout_weight="1.0"></Button>
pacote de.vogella.android.scrollview;
pblico
super- onCreate (savedInstanceState).; setContentView (R.layout.main); TextView view = (TextView) findViewById (R.id.TextView02); String = s "" ; para ( int i = 0 ; i < 100 ; i + +) { s + = "vogella.de" ; } view.setText (s);
} }
O atributo "android: fillViewport =" true "" garante que o ScrollView definida para a tela cheia, mesmo se os elementos so menores, em seguida, uma tela e os "layout_weight" dizer ao sistema android que estes elementos devem ser alargadas.
pontos de vista que tambm pode ser usado de forma independente e permite fazer chamadas e enviar SMS para o dispositivo. Tambm permite definir a posio geo atual e para executar um rastreamento do desempenho de sua aplicao.
18. Concha
18.1. Android Debugging Bridge - Shell
Voc pode acessar o seu emulador Android tambm atravs do console. Abra um shell, mude para o diretrio de instalao do "android-sdk" para a pasta "Ferramentas". Iniciar o shell atravs do seguinte comando "adb shell".
adb shell
Voc tambm pode copiar arquivos de e para o seu dispositivo via os seguintes comandos.
/ / Suponha que o arquivo gesto existe no seu dispositivo Android adb pull / sdcard / gestos ~ / teste
Isto ir conect-lo ao seu dispositivo e dar-lhe acesso linha de comando do Linux para o sistema de arquivos subjacente, por exemplo ls, rm, mkdir, etc Os dados do aplicativo armazenado no diretrio "/ data / data / package_of_your_app". Se voc tiver vrios dispositivos rodando voc pode emitir comandos a um dispositivo individual.
# Lista todos os dispositivos adb dispositivos # Resultado Lista de dispositivos conectados emulador-5554 anexa emulador-5555 anexa # Emitir um comando a um dispositivo especfico adb-s-5554 emulador shell
Como alternativa para adb voc tambm pode usar telnet para se conectar ao dispositivo. Isto permite-lhe simular certas coisas, chamada por exemplo, mudar a rede "estabilidade", defina o seu geocodes atual, etc Use "telnet localhost 5554" para conntect para o seu dispositivo simulado. Para sair da sesso do console, use o comando "quit" ou "exit". Por exemplo, para alterar as configuraes de energia do seu telefone, para receber um sms e para obter uma chamada recebida fazer o seguinte.
# Conecta ao dispositivo telnet localhost 5554 # Definir o nvel de potncia status de potncia total estado de alimentao de carga # Fazer uma chamada para o dispositivo gsm chamada 012041293123 # Enviar um sms para o dispositivo sms enviar 12.345 logo estar em casa # Definir a localizao geo geo fix 48 51
Para mais informaes sobre o console emulador consulte Emulator manual de Console
Para selecionar o seu telefone, selecione a opo "Run Configurations", selecione a seleo "Manual" e selecione o seu dispositivo.
20. Obrigado
Por favor ajude-me a apoiar este artigo:
Git Tutorial Coloque tudo que tiver sob o sistema de controle de verso distribudo