Transição de dados entre Activities

Olá!

Pessoal, alguém pode me dar uma orientação?
Gostaria de levar informações de uma Activity para outra. Mas não estou conseguindo, só dá NullPointerException.

Encontrei algumas informações na internet sobre Bundle e é este que estou tentando usar.

        botao = (Button) findViewById(R.id.botao);
        botao.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Bundle bundle = new Bundle();
                bundle.putString("nome", "reuri pote");
                //
                Intent intent = new Intent(getApplicationContext(), MinhaClassePrincipal.class);
                intent.putExtras(bundle);
                //
                startActivity(intent);
            }
        });

Erro

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{app.com.meuapp/app.com.meuapp.MinhaClassePrincipal}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference

Obs:
Vale lembrar que na classe onde estou tentando chamar o Bundle, estou instanciando da seguinte maneira:

Bundle bundle = getIntent().getExtras();

Coloque isso no lugar

Intent intent = new Intent(ActivityChamadora.this, MinhaClassePrincipal.class);
e veja no que dá.
1 curtida

Bom dia,

Pode tentar fazer dessa forma:

Chamada da activity

Intent intent = new Intent(getContext(), ActivityNova.class);
intent.putExtra("PARAM1",String.valueOf(variavel1));
intent.putExtra("PARAM2",String.valueOf(variavel2));
startActivity(intent);

Declare um método para retornar o seu contexto:

private Context getContext() {
        return this;
    }

Na activity que foi chamada, vc pode recuperar os dados da seguinte forma (no método onCreate):

Intent i = getIntent();
String p1 = i.getStringExtra("PARAM1");
String p2 = i.getStringExtra("PARAM2");