Autore Topic: onActivityResult - Prosegure dopo aver ricevuto il risultato  (Letto 601 volte)

Offline schumy79

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2 - GT-I9100
  • Sistema operativo:
    Win7 X64
onActivityResult - Prosegure dopo aver ricevuto il risultato
« il: 02 Ottobre 2012, 11:19:43 CEST »
0
Ciao,
dalla mia app per la gestione del fantacalcio di amici alla pressione di un pulsante richiamo la StartActivityForResult che funziona correttamente accedendo, dopo la scelta, a OnActivityResult. Il problema è che il codice dopo la chiamata alla StartActivity continua nel processo non attendendo la scelta dell'utente. Come posso fare? Grazie in anticipo per l'aiuto. Ecco il codice
Edit: result code mi ritorna -1...

Codice (Java): [Seleziona]
public void save_formazione(View view) {

                Intent intent = new Intent(Intent.ACTION_PICK,
                                ContactsContract.Contacts.CONTENT_URI);
                startActivityForResult(intent, 1);

                if (number == "") {
                        Toast.makeText(getApplicationContext(), "numero non trasmesso",
                                        Toast.LENGTH_LONG).show();
                } else {
                        Toast.makeText(getApplicationContext(), "numero trasmesso",
                                        Toast.LENGTH_LONG).show();
                }

                tot_t = Myappdata.get_tot_t();
                tot_p1 = Myappdata.get_tot_p1();
                tot_p2 = Myappdata.get_tot_p2();
                tot_out = Myappdata.get_tot_out();

                if (tot_t == 11 && tot_p1 == 4 && tot_p2 == 3) {

                        formazione = Myappdata.get_array_formazione();

                        new send_formazione().execute();

                } else {

                        if (tot_t != 11) {

                                Toast.makeText(getApplicationContext(),
                                                "Verificare numero giocatori titolari",
                                                Toast.LENGTH_SHORT).show();
                        }

                        if (tot_p1 != 4) {
                                Toast.makeText(getApplicationContext(),
                                                "Verificare numero giocatori in panchina",
                                                Toast.LENGTH_SHORT).show();
                        }

                        if (tot_p2 != 3) {
                                Toast.makeText(getApplicationContext(),
                                                "Verificare numero giocatori in panchina 2",
                                                Toast.LENGTH_SHORT).show();
                        }

                        listview.refreshDrawableState();

                }

        }

        @Override
        protected Dialog onCreateDialog(int id) {
                switch (id) {
                case progress_bar_type: // we set this to 0
                        pDialog = new ProgressDialog(this);
                        pDialog.setMessage("Caricamento formazione in corso. Attendere...");
                        pDialog.setIndeterminate(false);
                        pDialog.setMax(100);
                        pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                        pDialog.setCancelable(true);
                        pDialog.show();
                        return pDialog;
                default:
                        return null;
                }
        }

        private class send_formazione extends AsyncTask<Void, Integer, String> {

                @Override
                protected void onPreExecute() {
                        super.onPreExecute();
                        showDialog(progress_bar_type);
                }

                @Override
                protected String doInBackground(Void... list) {

                        Boolean deleted = del_ultima_form.del_ultima_formazione(
                                        Integer.valueOf(Myappdata.get_id_current_game()),
                                        Integer.valueOf(Myappdata.get_id_team()));

                        if (deleted == true) {

                                for (int i = 0; i < formazione.size(); i++) {
                                        row_formazione = Myappdata.get_row_id(i);

                                        Boolean inserted = send_formazione.send_formazione(
                                                        row_formazione, i);

                                        if (inserted == true) {

                                                progress = i + (i * 4);
                                                publishProgress(progress);

                                        } else {

                                                deleted = del_ultima_form.del_ultima_formazione(Integer
                                                                .valueOf(Myappdata.get_id_current_game()),
                                                                Integer.valueOf(Myappdata.get_id_team()));

                                                break;
                                        }
                                }
                        } else {

                        }
                        return "OK";
                }

                @Override
                protected void onProgressUpdate(Integer... progress) {
                        pDialog.setProgress(progress[0]);
                }

                @Override
                protected void onPostExecute(String result) {
                        // TODO Auto-generated method stub

                        if (result.equals("OK")) {
                                Toast.makeText(getApplicationContext(), "Upload " + result,
                                                Toast.LENGTH_SHORT).show();
                                dismissDialog(progress_bar_type);

                        } else {

                                Toast.makeText(getApplicationContext(), "Upload " + "KO",
                                                Toast.LENGTH_SHORT).show();
                        }
                        Load_insert_formazione.this.finish();
                }

        }

        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent intent) {
                super.onActivityResult(requestCode, resultCode, intent);
                if (requestCode == 1) {

                        Cursor phones = getContentResolver().query(
                                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                                        null, null, null);

                        if (phones != null) {

                                phones.moveToNext();

                                number = phones.getString(phones.getColumnIndex(Phone.NUMBER));

                                int type = phones.getInt(phones.getColumnIndex(Phone.TYPE));

                                switch (type) {
                                case ContactsContract.CommonDataKinds.Phone.TYPE_HOME:
                                        Toast.makeText(getApplicationContext(), "Home " + number,
                                                        Toast.LENGTH_LONG).show();
                                case ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE:
                                        Toast.makeText(getApplicationContext(), "Mobile " + number,
                                                        Toast.LENGTH_LONG).show();
                                }

                                phones.close();
                        }
                }
        }
« Ultima modifica: 02 Ottobre 2012, 11:21:30 CEST da schumy79 »

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:onActivityResult - Prosegure dopo aver ricevuto il risultato
« Risposta #1 il: 02 Ottobre 2012, 11:28:19 CEST »
+1
Ciao,
dalla mia app per la gestione del fantacalcio di amici alla pressione di un pulsante richiamo la StartActivityForResult che funziona correttamente accedendo, dopo la scelta, a OnActivityResult. Il problema è che il codice dopo la chiamata alla StartActivity continua nel processo non attendendo la scelta dell'utente. Come posso fare?

Questo è il funzionamento normale, il metodo startActivityForResult prepara il processo di apertura di una activity.

Quello che deve accadere dopo va messo su onActivityResult

Offline schumy79

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2 - GT-I9100
  • Sistema operativo:
    Win7 X64
Re:onActivityResult - Prosegure dopo aver ricevuto il risultato
« Risposta #2 il: 02 Ottobre 2012, 11:33:02 CEST »
0
ok grazie. quindi devo gestire in altra maniera.
Per quanto riguarda il -1 invece, è un errore o cos'altro? non ho trovato risposte.
Grazie ancora.

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:onActivityResult - Prosegure dopo aver ricevuto il risultato
« Risposta #3 il: 02 Ottobre 2012, 11:36:22 CEST »
0
Dipende cosa fai nell'altra activity e come imposti il setResult!

Offline schumy79

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2 - GT-I9100
  • Sistema operativo:
    Win7 X64
Re:onActivityResult - Prosegure dopo aver ricevuto il risultato
« Risposta #4 il: 02 Ottobre 2012, 11:41:34 CEST »
0
L'activity non so, richiamo la rubrica del telefono quindi mi aspetto un risultato automatico dal ContactsContract.Contacts.CONTENT_URI. Sbaglio?
Anche perchè non saprei come settare il risultato ....

Edit, vista ora la documentazione. Risolto :)

Grazie.