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.