No método mensagemPersonalizada da nossa classe MainActivity, criamos uma nova Intent com a ação desejada e nela adicionamos a categoria definida anteriormente. Em seguida, incluímos como informação extra o valor informado no EditText. E por fim, iniciamos uma nova activity passando a Intent criada.

    public void mensagemPersonalizada(View view) {

        Intent intent = new Intent(BoasVindasActivity.ACAO_EXIBIR_BOASVINDAS);
        intent.addCategory(BoasVindasActivity.CATEGORIA_BOASVINDAS);

        EditText nomeEditText = (EditText) findViewById(R.id.nomeEditText);
        String texto = nomeEditText.getText().toString();

        intent.putExtra(BoasVindasActivity.EXTRA_NOME_USUARIO, texto);

        startActivity(intent);

    }

Já que a exibição da mensagem de boas-vindas passou a ser responsabilidade de outra activity, devemos excluir do layout utilizado pela MainActivity o TextView que tinha esse papel. No arquivo de layout activity_main.xml, remova o último TextView declarado, com o id@boasVindasTextView, pois não precisaremos mais dele. As últimas alterações para que nossa BoasVindasActivity possa responder a uma Intent serão feitas no arquivo AndroidManifest.xml.

Vamos adicionar um novo bloco de activity, declarações nas quais estabelecemos que a BoasVindasActivity responde pela ACAO_EXIBIR_USUARIO e também atende a intents que pertencem a CATEGORIA_BOASVINDAS:

<activity android:name="com.example.hello.BoasVindasActivity" >
            <intent-filter>
                <action android:name="helloworld3.ACAO_EXIBIR_BOASVINDAS" />

                <category android:name="helloworld3.CATEGORIA_BOASVINDAS" />
                
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

Quando desejamos que uma activity receba intents implícitas, é obrigatório que no intent filter também seja incluída a categoria android.intent.category.DEFAULT.

Copyright © 2016 AIEC.