Pular para o conteúdo

Mais visitados

Visitados recentemente

navigation

Inicie outra activity

Ao concluir a lição anterior, você terá um aplicativo que exibe uma activity (uma só tela) com um campo de texto e um botão. Nesta lição, você adicionará código a MainActivity para iniciar uma nova activity quando o usuário clicar no botão Send.

Observação: Esta lição pressupõe que você esteja usando o Android Studio 3.0.

Responder ao botão Send

Adicione um método em MainActivity.java que será chamado pelo botão da seguinte maneira:

  1. No arquivo app > java > com.example.myfirstapp > MainActivity.java, adicione o stub do método sendMessage() conforme é mostrado abaixo:
    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        /** Called when the user taps the Send button */
        public void sendMessage(View view) {
            // Do something in response to button
        }
    }

    Talvez seja exibido um erro porque o Android Studio não pode resolver a classe View usada como argumento do método. Dessa forma, clique para colocar o cursor na declaração View e execute um Reparo Rápido ao pressionar Alt+Enter (ou Option+Enter no Mac). (Se um menu for exibido, selecione Import class.)

  2. Agora, retorne ao arquivo activity_main.xml para chamar esse método pelo botão:
    1. Clique para selecionar o botão no Layout Editor.
    2. Na janela Attributes, localize a propriedade onClick e selecione sendMessage [MainActivity] na lista suspensa.

Agora, ao tocar no botão, o sistema chama o método sendMessage().

Observe os detalhes desse método que são necessários para que o sistema o reconheça como compatível com o atributo android:onClick. Especificamente, o método deve declarar o seguinte:

A seguir, você preencherá esse método para ler o conteúdo do campo de texto e para enviar esse texto a outra activity.

Criar uma intent

Uma Intent é um objeto que fornece vínculos de tempo de execução entre componentes separados (como duas activities). A Intent representa uma “intenção de fazer algo” do aplicativo. Você pode usar as intents para uma ampla variedade de tarefas, mas, nesta lição, a intent iniciará outra activity.

Em MainActivity.java, adicione a constante EXTRA_MESSAGE e o código sendMessage(), conforme é mostrado aqui:

public class MainActivity extends AppCompatActivity {
    public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /** Called when the user taps the Send button */
    public void sendMessage(View view) {
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        EditText editText = (EditText) findViewById(R.id.editText);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }
}

O Android Studio novamente apresentará erros Cannot resolve symbol, portanto, pressione Alt+Enter (ou Option+Return no Mac). Suas importações devem resultar em:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

Um erro para DisplayMessageActivity permanece, mas tudo bem; você vai corrigi-lo na próxima seção.

Está acontecendo o seguinte em sendMessage():

Criar a segunda activity

  1. Na janela Project, clique com o botão direito do mouse na pasta app e selecione New > Activity > Empty Activity.
  2. Na janela Configure Activity, digite "DisplayMessageActivity" em Activity Name e clique em Finish (deixe as demais propriedades definidas como os valores padrão).

O Android Studio faz três coisas automaticamente:

Se você executar o aplicativo e tocar no botão na primeira activity, a segunda activity será iniciada, mas estará vazia. Isso ocorre porque a segunda activity utiliza o layout vazio fornecido pelo modelo.

Adicionar uma visualização de texto

Figura 1. A visualização de texto centralizada no topo do layout

A nova activity incluirá um arquivo de layout vazio, portanto, agora você adicionará uma visualização de texto na qual a mensagem será exibida.

  1. Abra o arquivo app > res > layout > activity_display_message.xml.
  2. Clique em Turn On Autoconnect na barra de ferramentas (a opção deverá ser ativada, conforme é mostrado na figura 1).
  3. Na janela Pallete, clique em Text e arraste uma TextView para o layout. Coloque-a no topo do layout, próxima ao centro, para que ela se encaixe na linha vertical exibida. O Autoconnect adiciona limitações esquerda e direita para colocar a visualização no centro horizontal.
  4. Crie mais uma limitação do topo da visualização de texto para o topo do layout, de forma que ela apareça como é mostrado na figura 1.

Opcionalmente, faça ajustes ao estilo do texto expandindo textAppearance na janela Attributes e altere atributos como textSize e textColor.

Exibir a mensagem

Agora, você modificará a segunda activity para exibir a mensagem que foi passada pela primeira activity.

  1. Em DisplayMessageActivity.java, adicione o seguinte código ao método onCreate():
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display_message);
        
        // Get the Intent that started this activity and extract the string
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    
        // Capture the layout's TextView and set the string as its text
        TextView textView = findViewById(R.id.textView);
        textView.setText(message);
    }
  2. Pressione Alt+Enter (ou Option+Return no Mac) para importar classes que estejam faltando. Suas importações devem resultar em:
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;
    

Adicionar navegação

Cada uma das telas do seu aplicativo que não seja a principal (todas as telas que não sejam a tela “inicial”) devem oferecer navegação para que o usuário possa retornar à tela pai lógica na hierarquia do aplicativo ao tocar no botão Up da barra de aplicativos.

Basta declarar qual activity é o pai lógico no arquivo AndroidManifest.xml. Portanto, abra o arquivo em app > manifests > AndroidManifest.xml, localize a tag <activity> para DisplayMessageActivity e substitua-a pelo seguinte:

<activity android:name=".DisplayMessageActivity"
          android:parentActivityName=".MainActivity" >
    <!-- The meta-data tag is required if you support API level 15 and lower -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".MainActivity" />
</activity>

Agora, o sistema Android automaticamente adicionará o botão Up à barra de aplicativos.

Executar o aplicativo

Agora, execute o aplicativo novamente clicando em Apply Changes na barra de ferramentas. Quando ele for aberto, digite uma mensagem no campo de texto e toque em Send para que ela seja exibida na segunda activity.

Figura 2. Captura de tela das duas activities

Pronto, você criou seu primeiro aplicativo Android!

Para continuar aprendendo as noções básicas do desenvolvimento de aplicativos Android, siga o link abaixo para a próxima lição.

Este site usa cookies para armazenar suas preferências quanto às opções de idioma e exibição específicas ao site.

Receba as dicas e notícias mais recentes para desenvolvedores Android que ajudarão você a ter sucesso no Google Play.

* Campos obrigatórios

Uhu!

Siga o Google Developers no WeChat

Navegar neste site em ?

Você solicitou uma página em , mas sua preferência de idioma para este site está definida como .

Quer alterar sua preferência de idioma e navegar neste site em ? Para alterar a preferência de idioma depois, use o menu de idiomas na parte inferior de cada página.

É preciso ter o nível de API ou superior para esta aula

Este documento está oculto porque o nível de API selecionado para a documentação é o . Para alterar o nível, clique no seletor acima da barra de navegação esquerda.

Para mais informações sobre como especificar o nível de API que o seu app precisa, leia o artigo Compatibilidade com diferentes versões de plataforma.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)