Autore Topic: Come evitare che un utente interagisca finchè c'è la progressbar  (Letto 392 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Quando un utente clicca un bottone, eseguo un task asincrono e finchè non è finito l'utente non deve poter far nulla
Per fare questo ho scritto una progressbar dentro una jdialog e funziona tutto con questo codice:

Codice (Java): [Seleziona]
        public void pubblishInsertion(View view) {
                publishDialog = new Dialog(activity);
                publishDialog
                                .setContentView(R.layout.add_insertion_step4_publish_dialog_layout);
                publishDialog.setTitle("Attendere...");

                final Button closeButton = (Button) publishDialog
                                .findViewById(R.id.add_insertion_step4_close_btn_id);

                closeButton.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v) {
                                publishDialog.dismiss();
                        }
                });

                new HTTPPublishInsertion().execute("");

                publishDialog.setCanceledOnTouchOutside(false);
                publishDialog.show();

        }
A video vedo il rettangolo della jdialog che mostra una progessbar circolare
N.B. per evitare che la dialog venga chiusa al tocco e quindi per evitare che l'utente interagisca con l'app uso questa istruzione:
publishDialog.setCanceledOnTouchOutside(false);

Ora vorrei fare la stessa cosa senza mostrare il rettangolo della dialog, vorrei che si vedesse solo la progressbar circolare, il problema è che se tolgo la dialog e faccio vedere la progressbar , l'utente può interagire con l'app

Come si deve fare a visualizzare una progressbar, senza dialog, che non permetta di modificare niente finchè non è finito il task?

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come evitare che un utente interagisca finchè c'è la progressbar
« Risposta #1 il: 25 Marzo 2014, 00:04:43 CET »
0
qualche idea o suggerimento?

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Come evitare che un utente interagisca finchè c'è la progressbar
« Risposta #2 il: 25 Marzo 2014, 08:24:43 CET »
0
Quando un utente clicca un bottone, eseguo un task asincrono e finchè non è finito l'utente non deve poter far nulla

Sei così sicuro che sia una buona idea?
Generalmente gli sforzi sono in senso contrario, cercare di non bloccare mai l'operatività dell'utente.
Cosa esegue il tuo task asincrono nel tuo caso specifico?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Come evitare che un utente interagisca finchè c'è la progressbar
« Risposta #3 il: 25 Marzo 2014, 10:27:12 CET »
0
Un compromesso potrebbe essere disabilitare quel Button per tutto il tempo che il task gira.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come evitare che un utente interagisca finchè c'è la progressbar
« Risposta #4 il: 25 Marzo 2014, 14:16:29 CET »
0
GabMarioPower il pulsante in questione serve per aggiungere un articolo all'elenco degli articoli preferiti dell'utente
bradipao per il momento ho fatto proprio come hai pensato te
« Ultima modifica: 25 Marzo 2014, 14:19:16 CET da andream1977 »