sábado, 15 de junho de 2013

Caminhando - 2ª parte, Iniciando a Segunda Ação

Para iniciar a ação, chama startActivity() e passa para sua Intent. O sistema recebe está chamada e inicia a instancia de  Activity especificada pelo Intent.
Com este novo código, o método completo sendMessage() que chama o botão enviar se parece com isto:
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
   
Intent intent = new Intent(this, DisplayMessageActivity.class);
   
EditText editText = (EditText) findViewById(R.id.edit_message);
   
String message = editText.getText().toString();
    intent
.putExtra(EXTRA_MESSAGE, message);
    startActivity
(intent);
}
Agora você precisa criar a classe DisplayMessageActivity em ordem para isto funcionar.
Criando a Segunda Ação



Figura 1. O novo ajudante de ação do Eclipse.
Para criar uma nova ação usando o Eclipse:
1.    Clique New   na barra de ferramentas.
2.    Na janela que aparecer, abra a pasta Android e selecione Android Activity. Clique Next.
3.    Selecione BlankActivity e clique Next.
4.    Preencha os detalhes da ação:
o    Project: MeuPrimeiroAp
o    Activity Name: DisplayMessageActivity
o    Layout Name: activity_display_message
o    Title: Minha Mensagem
o    Hierarchial Parent: com.example.meuprimeiroap.MainActivity
o    Navigation Type: None
Clique Finish.
Se você estiver usando uma IDE diferente ou linha de comando, crie um novo arquivo com o nome DisplayMessageActivity.java no diretório de projetos src/ , ao lado do arquivo original MainActivity.java.
Abra o arquivo DisplayMessageActivity.java . Se estiver usando o Eclipse para criar esta ação:
·         A classe já incluída na implementação requer o método onCreate().
·         Também tem a implementação do método onCreateOptionsMenu() , mas você não precisara disto para o aplicativo, assim você pode removê-lo.
·         Também tem a Implementação do onOptionsItemSelected() que manipula o comportamento da barra de ação Up. Mantenha este na forma em que está.
Devido as APIs  ActionBar estarem disponíveis apenas no HONEYCOMB (API nível 11) e mais alto, você deve adicionar a condição em torno do método getActionBar() para checar a versão atual da plataforma. Adicionalmente, você deve adicionar a tag @SuppressLint("NewApi") no método  onCreate() para evitar erros do lint .
A classe DisplayMessageActivity deve parecer com isto:
public class DisplayMessageActivity extends Activity {

   
@SuppressLint("NewApi")
   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView
(R.layout.activity_display_message);

       
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
       
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
           
// Show the Up button in the action bar.
            getActionBar
().setDisplayHomeAsUpEnabled(true);
       
}
   
}

   
@Override
   
public boolean onOptionsItemSelected(MenuItem item) {
       
switch (item.getItemId()) {
       
case android.R.id.home:
           
NavUtils.navigateUpFromSameTask(this);
           
return true;
       
}
       
return super.onOptionsItemSelected(item);
   
}
}
Se usar uma IDE alem do Eclipse, atualize sua classe DisplayMessageActivity com o código acima.
Todas as subclasses de  Activity devem implementar o metodo onCreate(). O sistema chama isto quando cria uma nova instancia da ação. Este método é aonde você deve definir o esboço da ação com o método setContentView() e será aonde você deve realizar a configuração inicial para os componentes da ação.
Nota: Se você esta usando uma IDE diferente do Eclipse, seu projeto não contem o esboço activity_display_message que é requisitado por setContentView(). Isto está certo porque você irá atualizar este método depois e não irá usar o esboço.

Adicionando o texto do titulo
Se você estiver usando o Eclipse, você pode pular a próxima seção, porque o modelo fornece o texto do titulo para sua nova ação.
Se você estiver usando uma IDE diferente do Eclipse, adicione o novo titulo da ação no arquivo strings.xml :
<resources>
    ...
   
<string name="title_activity_display_message">Minha Mensagem</string>
</resources>
Anexar ao manifesto
Todas as ações devem ser declaradas em seu arquivo de manifesto,  AndroidManifest.xml, usando o elemento <activity>.
Quando você usar as ferramentas do Eclipse para criar a ação, irá criar uma entrada padrão. Caso esteja usando outra IDE, você precisara adicionar manualmente a entrada do manifesto, deverá ficar parecido com isto:
<application ... >
    ...
   
<activity
       
android:name="com.example.meuprimeiroap.DisplayMessageActivity"
       
android:label="@string/title_activity_display_message"
       
android:parentActivityName="com.example.meuprimeiroap.MainActivity" >
       
<meta-data
           
android:name="android.support.PARENT_ACTIVITY"
           
android:value="com.example.meuprimeiroap.MainActivity" />
   
</activity>
</application>
O atributo  android:parentActivityName declara o nome desta ação de uma ação matriz dentro da hierarquia lógica do aplicativo. O sistema usa este valor para implementar o comportamento padrão da navegação, tais como o Up navigation no Android 4.1 (API nível 16)  e acima. Você pode prover o mesmo comportamento de navegação para versões mais antigas do Android para usa a Biblioteca de Suporte e adicionar o elemento <meta-data> como mostrado aqui.
Nota: O SDK do Android que você tiver, deverá já ter incluído as mais atuais bibliotecas de suporte. Está embutido com o combo do ADT, mas caso esteja usando uma IDE diferente, você deverá ter instalado durante o passo de Adicionando Plataformas e Pacotes. Quando usar os modelos no Eclipse, o suporte a biblioteca será automaticamente adicionado para seu projeto de aplicativo ( você consegue ver o arquivo JAR da biblioteca na lista de dependência). Se não estiver usando o Eclipse, você precisa adicionar manualmente a biblioteca para seu projeto – siga o guia para configura a biblioteca de suporte para então retornar aqui.

Se você estiver desenvolvendo com o Eclipse, você pode rodar o aplicativo agora, mas nada irá ocorrer. Clicando no botão Enviar inicia a segunda atividade mas irá usar o esboço padrão do “Hello World” fornecido pelo modelo. Em breve você estará atualizando a ação para mostrar o texto personalizado, portanto se você estiver usando uma IDE diferente, não se preocupe com o aplicativo ainda não compilar.

Nenhum comentário:

Postar um comentário