Autore Topic: Problema a recuperare Extra data  (Letto 661 volte)

Offline mirco.paronetto

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC one M7
  • Sistema operativo:
    MAC OSX 10.9
Problema a recuperare Extra data
« il: 02 Gennaio 2014, 14:58:32 CET »
0
Buon giorno,
sono un newbie nello sviluppo di android, e sono al mio prima problema...

Ho un activity, main, che chiama una altra activity (tramite start activity for result) che a sua volta contiene un fragment. Questo fragment serve per la registrazione dell'utente. Il click sul bottone registra è catturato all'interno del metodo di callback onActivityCreated del fragment. All'interno dello stesso metodo ritorno i risultati all'activity chiamante. Passo un modello Parcelable.  A questo punto nell'activity di partenza implemento il metodo onAcitvityResult ma il data che ottengo qui  è nullo.

Spero di essermi spiegato... Se qualcuno potesse darmi una dritta..

Fragment che ritorna il risultato.
@Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);

            mRegistrationButton = (Button) getActivity().findViewById(R.id.register_button);
            mUserName = (EditText) getActivity().findViewById(R.id.registration_name);
            mPassword = (EditText) getActivity().findViewById(R.id.registration_password);
            mEmail = (EditText) getActivity().findViewById(R.id.registration_email);

            mRegistrationButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.d("RegistrationFragment","click beccato");

                    final Editable userName = mUserName.getText();
                    final Editable passWord = mPassword.getText();
                    final Editable eMail = mEmail.getText();

                    if (TextUtils.isEmpty(userName))
                    {

                    }

                    final String username = userName.toString();
                    final String password = passWord.toString();
                    final String email = eMail.toString();

                    final UserData userData = RegistrationService.get().register(username,password,email);
                    if (userData != null)
                    {
                        Intent resultIntent = new Intent();
                        resultIntent.putExtra(USER_DATA_EXTRA, userData);
                        setResult(RESULT_OK, resultIntent);
                        finish();
                    }
                }
            });

        }

Metodo sull'activity principale che elabora il risultato..
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REGISTRATION_REQUEST_ID)
        {
            if (resultCode == RESULT_OK)
            {
                final UserData userData = (UserData) data.getParcelableExtra(RegistrationActivity.USER_DATA_EXTRA);
            }
        }
    }
« Ultima modifica: 02 Gennaio 2014, 15:01:04 CET da mirco.paronetto »

iClaude

  • Visitatore
Re:Problema a recuperare Extra data
« Risposta #1 il: 03 Gennaio 2014, 12:52:53 CET »
0
startActivityForResult lo chiami da un'Activity o da un Fragment?
Cmq sia nel tuo Fragment prova ad usare getActivity().setResult e getAcivity().finish()

Offline mirco.paronetto

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC one M7
  • Sistema operativo:
    MAC OSX 10.9
Re:Problema a recuperare Extra data
« Risposta #2 il: 03 Gennaio 2014, 15:24:29 CET »
0
Ciao,
il startactivityforresult lo chiamo dall'implementazione onNavigationDrawerItemSelected dell'interfaccia del navigationdrawer fragment, quindi in verità lo faccio da un activity.

Comunque mi sono accorto che funzionava, semplicemente non capivo come leggere i dati da "data".

Grazie mille per l'aiuto.