Autore Topic: Inserire un'attesa fino a quando non avviene un evento  (Letto 902 volte)

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Inserire un'attesa fino a quando non avviene un evento
« il: 18 Dicembre 2010, 00:56:06 CET »
0
Ciao a tutti!

Vi spiego il mio problema.
Avrei bisogno di implementare alcune righe di codice su eclipse, per mettere in pausa l'esecuzione del codice finchè non avviene un evento.


Nel mio caso dovrei inserire un'attesa fino a quando non viene cliccata un ImageButton e quando questa viene cliccata il programma dovrebbe proseguire.

Avete in mente qualcosa?

grazie!

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Inserire un'attesa fino a quando non avviene un evento
« Risposta #1 il: 18 Dicembre 2010, 10:18:19 CET »
0
Non puoi semplicemente mettere il codice da eseguire dopo l'attesa in un thread che fai partire al click dell'ImageButton?

EDIT: Oppure metti tutto il tuo codice in un thread diverso da quello principale e cosí puoi mettere in pausa/play il codice quando vuoi.
« Ultima modifica: 18 Dicembre 2010, 11:13:32 CET da blackgin »
Postate il LogCat LogCat LogCat LogCat LogCat

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:Inserire un'attesa fino a quando non avviene un evento
« Risposta #2 il: 18 Dicembre 2010, 12:33:18 CET »
0
Nel mio caso dovrei inserire un'attesa fino a quando non viene cliccata un ImageButton e quando questa viene cliccata il programma dovrebbe proseguire.

Come accennava blackgin, questo è in un certo senso proibito in una applicazione Android. L'esecuzione non può mai rimanere bloccata in attesa che l'utente interagisca, altrimenti i telefoni sarebbero inusabili. Quello che è permesso fare (e dal punto di vista dl risultatoè identico, se non migliore) è che la tua esecuzione finisca quando ti serve una interazione, facendo in modo che alla pressione dell'imagebutton venga eseguito un certo codice.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Inserire un'attesa fino a quando non avviene un evento
« Risposta #3 il: 18 Dicembre 2010, 14:04:53 CET »
0
hai considerato di usare un clicklistener?

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Inserire un'attesa fino a quando non avviene un evento
« Risposta #4 il: 18 Dicembre 2010, 15:40:52 CET »
0
ciao a tutti e grazie per le risposte.

posto un po di codice per spiegare meglio

qui ho seguito il consiglio di Qlimax ma non ottengo il risultato voluto perchè le 2 ImageButton cambiano di colore(sfondo) appena l'applicazione parte.
Invece voglio che cambiano colore 1 alla volta a seguito del click dell'utente

La funzione illumina() cambia il background dell'ImageButton

Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState) {
       
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
   
        ...........

        for(int j=0;j<2;j++){
           
                switch(a[j]){                  
                        case 1: illumina(1);
                                    ImageButton bt = (ImageButton)findViewById(R.id.icon);
                                    bt.setOnClickListener(mIconListener); break;

                        case 2: illumina(2);
                                    ImageButton bt1 = (ImageButton)findViewById(R.id.icon1);
                                    bt1.setOnClickListener(mIconListener); break;
                }
        }
    }
       
private OnClickListener mIconListener = new OnClickListener() {

    public void onClick(View v) {
              elimina(v);
    }
};

Il problema è nel ciclo for.
Praticamente vorrei che finchè non viene cliccato l'ImageButton chiamato "bt" (case: 1) il for non deve continuare a ciclare.

grazie
« Ultima modifica: 18 Dicembre 2010, 15:51:21 CET da davidelib »

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Inserire un'attesa fino a quando non avviene un evento
« Risposta #5 il: 20 Dicembre 2010, 13:32:53 CET »
0
Ciao ragazzi, finalmente oggi ho risolto.
Ho trovato una soluzione, NON utilizzando più un ciclo for, ma richiamando una funzione ciclicamente ad ogni click dell'utente.

Per correttezza inserisco anche il codice:

   
Codice (Java): [Seleziona]
public void funzione(int j){
               
                illumina(j);
               
                if(j==0){
                       
                        ...........setOnClickListener(mIconListener);
                }
               
                if(j==1){
                       
                        ...........setOnClickListener(mIconListener);
                }
        }
       
private OnClickListener mIconListener = new OnClickListener() {
            public void onClick(View v) {
                j++;
                funzione(j);  
                ...........
           }
        };


Infinite grazie per le vostre risposte...come avrete notato dalla soluzione siete stati di grande aiuto!! :-)