[RESOLVIDO] Pegar valor de um EditText de um Fragment e levar para outro Fragment

3 respostas
dj11

estou fazendo dessa forma:

//fragment 1 (pega valores digitados pelo usuário)

args = new Bundle();
args.putInt("man",Integer.parseInt(man_edit.getText().toString()));
args.putInt("woman",Integer.parseInt(woman_edit.getText().toString()));
args.putInt("children",Integer.parseInt(children_edit.getText().toString()));

tab = new Tab2();
tab.setArguments(args);

//Fragment 2 (exibe resultado de cálculos utilizando valores de man, woman e children)

m = getArguments().getInt("man");
w = getArguments().getInt("woman");
c = getArguments().getInt("children");

logCat exibe erro: java.lang.NullPointerException, ou seja ogetArguments(); não tá achando nada, está vazio.

alguém já implementou algo parecido? preciso de uma dica!

3 Respostas

Leonardo_Dias

Tenta fazer dessa forma, na hora de resgatar os valores:

Bundle bundle = this.getArguments();
if (bundle != null) {
   m = bundle.getInt("man");
}

Se continuar vindo nulo, o problema está na hora de passar os valores.

Abraços.

dj11

obrigado pela ajuda, vou tentar.

dj11

//resolvi de uma forma diferente.
//criei uma nova classe só para pegar os valores digitados;

public class Calc {

//variáveis estáticas

public static int man;

public static int woman;

public static int children;



}

//no Fragment 1:

//atribui diretamente os valores

Calc.man = Integer.parseInt(man_editText.getText().toString());

Calc.woman = Integer.parseInt(woman_editText.getText().toString());

Calc.children =Integer.parseInt(children_editText.getText().toString());
//no Fragment 2:

//não preciso instanciar a classe Calc, pois as variáveis são do tipo static;

//apenas chamei direto:

m = Calc.man;

w = Calc.woman;

c = Calc.children;


//*********************************************
//funcionou!

Criado 12 de outubro de 2016
Ultima resposta 14 de out. de 2016
Respostas 3
Participantes 2