Autore Topic: [Risolto] ProcessDialog nell'ActionBar  (Letto 502 volte)

Offline TheSgrash

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • TheSgrash
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone e Asus Transformer
  • Play Store ID:
    Davide TheSgrash
  • Sistema operativo:
    ArchLinux - Win7 - Ubuntu 11.04
[Risolto] ProcessDialog nell'ActionBar
« il: 13 Giugno 2013, 12:12:49 CEST »
0
Ho un pulsante di Refresh nella mia ActionBar..
attualmente alla pressione parte un AsyncTask appare un ProcessDialog..
vorrei, invece, che semplicemente cominciasse a girare la rotellina al posto del refresh come succede oramai in tantissime app

praticamente come si fa? c'è qualche tutorial o sample al riguardo?
« Ultima modifica: 14 Giugno 2013, 10:40:30 CEST da TheSgrash »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:ProcessDialog nell'ActionBar
« Risposta #1 il: 13 Giugno 2013, 12:17:47 CEST »
0
prova a fare come fanno qui android - Animated Icon for ActionItem - Stack Overflow

non mi sono mai posto il problema a dire il vero...

EDIT: Using the Android action bar (ActionBar) - Tutorial
« Ultima modifica: 13 Giugno 2013, 12:23:06 CEST da Nicola_D »
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:ProcessDialog nell'ActionBar
« Risposta #2 il: 13 Giugno 2013, 15:34:10 CEST »
0
C'è gia tutto pronto, senza generare custom view.
Basta che prima del setContentView (dell'oncreate) metti
Codice (Java): [Seleziona]
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
Poi quando ti serve la "rotellina":
Codice (Java): [Seleziona]
setProgressBarIndeterminateVisibility(boolean visibile);
con ovviamente true se vuoi che sia visibile o false se vuoi nasconderla
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline TheSgrash

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • TheSgrash
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone e Asus Transformer
  • Play Store ID:
    Davide TheSgrash
  • Sistema operativo:
    ArchLinux - Win7 - Ubuntu 11.04
Re:ProcessDialog nell'ActionBar
« Risposta #3 il: 14 Giugno 2013, 00:00:12 CEST »
0
perfetto! così appare la rotellina,
ma come nascondo quella che già c'è nel menù?

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:ProcessDialog nell'ActionBar
« Risposta #4 il: 14 Giugno 2013, 09:27:06 CEST »
0
Cosa intendi con "quella che già c'è nel menu"? :)
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline TheSgrash

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • TheSgrash
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone e Asus Transformer
  • Play Store ID:
    Davide TheSgrash
  • Sistema operativo:
    ArchLinux - Win7 - Ubuntu 11.04
Re:ProcessDialog nell'ActionBar
« Risposta #5 il: 14 Giugno 2013, 10:39:56 CEST »
0
ok mi rispondo da solo che magari può essere utile a qualcuno:

se avete un pulsante di REFRESH nell'ActionBar e volete nasconderlo quando appare il ProcessDialog che ruota nell'ActionBar dovete
- avere un riferimento al pulsante
in onCreateOptionsMenu(Menu menu)
Codice: [Seleziona]
MenuItem refresh_button = menu.findItem(R.id.refresh);dove R.id.refresh è l'id del pulsante di refresh
- nasconderlo
nella onPreExecute dell'AsyncTask
Codice: [Seleziona]
refresh_button.setVisible(false);- farlo riapparire
nella onPostExecute dell'AsyncTask
Codice: [Seleziona]
refresh_button.setVisible(true);
grazie a tutti