1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Passar valores de um fragment para uma activity

Estou querendo passar o valor de um EditText (que está em um fragment) para um atributo de um objeto de uma activity, porém não estou obtendo sucesso, o Toast da activity retorna null. Segue o código do fragment:

public class PerguntaUmFragment extends SlideFragment {
    private PerguntaUmInterface perguntaUmInterface;
    private EditText editMensagem;


    public PerguntaUmFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view =  inflater.inflate(R.layout.fragment_pergunta_um, container, false);

        editMensagem = view.findViewById(R.id.editMensagem);

        perguntaUmInterface.setMensagem(editMensagem.getText().toString());


        return view;
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);

        try {
            perguntaUmInterface = (PerguntaUmInterface) context;
        } catch (Exception e) {
            Log.e("ERROR", e.toString());
        }
    }

    public interface PerguntaUmInterface {
        void setMensagem(String mensagem);
    }

    public void setPerguntaUmInterface(PerguntaUmInterface perguntaUmInterface) {
        this.perguntaUmInterface = perguntaUmInterface;
    }
}

Activity:

public class OcorrenciaActivity extends IntroActivity implements PerguntaUmFragment.PerguntaUmInterface {
    private final Ocorrencia ocorrencia = new Ocorrencia();

     @Override
     protected void onCreate(Bundle savedInstanceState) {
        Toast.makeText(OcorrenciaActivity.this,
                "Mensagem: "+ ocorrencia.getMensagem(),
                Toast.LENGTH_SHORT).show();
     }
    @Override
    public void onAttachFragment(Fragment fragment) {
        super.onAttachFragment(fragment);
        if (fragment instanceof PerguntaUmFragment) {
            PerguntaUmFragment perguntaUmFragment = (PerguntaUmFragment) fragment;
        }

    }
    @Override
    public void setMensagem(String mensagem) {
        ocorrencia.setMensagem(mensagem);

    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java android ou faça a sua própria pergunta.