GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Transição de dados entre Activities


#1

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();

#2

Coloque isso no lugar

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

#3

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");