Autore Topic: Toast non scompare o looppa  (Letto 700 volte)

Offline Giamme

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    appLOOPiamo
  • Sistema operativo:
    Windows 7
Toast non scompare o looppa
« il: 08 Luglio 2013, 17:16:36 CEST »
0
Ciao a tutti.

Oggi sono incappato in un problemino.

Ho una schermata con delle ET da compilare e un bottone, quando l'utente preme sul bottone un toast appare, in realtà possono apparirne 2 diversi, uno in base a come ha compilato le ET.

Premetto che è un custom toast, che riempe il suo contenuto da un layout.xml apposito.

Il mio problema è il seguente, una volta che il toast appare non scompare più, ma anzi sembra che ogni volta che si chiude riappare.
Come mai? Potrebbe centrare qualcosa il fatto che se ne possono creare 2 all'interno della stessa pagina con lo stesso custom layout.xml?
Insomma per favore aiutatemi.

Codes
Eccolo:
(ho preso solo le funzioni che aprono il toast)
Codice (Java): [Seleziona]
private void FunzioneTestes() {
                // TODO Auto-generated method stub
                // get your .xml layout
                LayoutInflater inflater = getLayoutInflater();


                View layout = inflater.inflate(R.layout.toast_custom,
                                (ViewGroup) findViewById(R.id.myToast));


                // set image
                ImageView image = (ImageView) layout.findViewById(R.id.image);
                image.setImageResource(R.drawable.ic_launcher);


                // set message
                TextView text = (TextView) layout.findViewById(R.id.text);
                text.setText(testoNonUsurato);


                // Toast...
                Toast toast = new Toast(getApplicationContext());
                toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
                toast.setDuration(4000);
                toast.setView(layout);
                toast.show();


                tvRisultato.setText(testoNonUsurato.toString());
        }


        private void FunzioneTest() {
                // TODO Auto-generated method stub
                // get your .xml layout
                LayoutInflater inflater = getLayoutInflater();


                View layout = inflater.inflate(R.layout.toast_custom,
                                (ViewGroup) findViewById(R.id.myToast));


                // set image
                ImageView image = (ImageView) layout.findViewById(R.id.image);
                image.setImageResource(R.drawable.ic_launcher);


                // set message
                TextView text = (TextView) layout.findViewById(R.id.text);
                text.setText(testoUsurato);


                // Toast...
                Toast toast = new Toast(getApplicationContext());
                toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
                toast.setDuration(4000);
                toast.setView(layout);
                toast.show();


                tvRisultato.setText(testoUsurato.toString());
        }

Qui il layout per il toast:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/myToast"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@drawable/back_toast"
   android:orientation="vertical" >

    <ImageView
       android:id="@+id/image"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_gravity="center_horizontal" />

    <TextView
       android:id="@+id/text"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_gravity="center_horizontal"
       android:layout_margin="5dp"
       android:textColor="#000"
       android:textSize="20sp" />

</LinearLayout>

Grazie mille a tutti!
« Ultima modifica: 08 Luglio 2013, 17:26:04 CEST da Giamme »
"Tutto ciò che è necessario per il trionfo del male è che gli uomini buoni non facciano nulla."
Edmund Burke

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:Toast non scompare o looppa
« Risposta #1 il: 08 Luglio 2013, 17:18:01 CEST »
0
Insomma per favore aiutatemi.

eheh, senza vedere il codice sarà un po' difficile.  ;-)
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Giamme

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    appLOOPiamo
  • Sistema operativo:
    Windows 7
Re:Toast non scompare o looppa
« Risposta #2 il: 08 Luglio 2013, 17:20:56 CEST »
0
Scusami, pensavo non ce ne fosse bisogno.

Eccolo:
(ho preso solo le funzioni che aprono il toast)
Codice (Java): [Seleziona]
private void FunzioneTestes() {
                // TODO Auto-generated method stub
                // get your .xml layout
                LayoutInflater inflater = getLayoutInflater();


                View layout = inflater.inflate(R.layout.toast_custom,
                                (ViewGroup) findViewById(R.id.myToast));


                // set image
                ImageView image = (ImageView) layout.findViewById(R.id.image);
                image.setImageResource(R.drawable.ic_launcher);


                // set message
                TextView text = (TextView) layout.findViewById(R.id.text);
                text.setText(testoNonUsurato);


                // Toast...
                Toast toast = new Toast(getApplicationContext());
                toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
                toast.setDuration(4000);
                toast.setView(layout);
                toast.show();


                tvRisultato.setText(testoNonUsurato.toString());
        }


        private void FunzioneTest() {
                // TODO Auto-generated method stub
                // get your .xml layout
                LayoutInflater inflater = getLayoutInflater();


                View layout = inflater.inflate(R.layout.toast_custom,
                                (ViewGroup) findViewById(R.id.myToast));


                // set image
                ImageView image = (ImageView) layout.findViewById(R.id.image);
                image.setImageResource(R.drawable.ic_launcher);


                // set message
                TextView text = (TextView) layout.findViewById(R.id.text);
                text.setText(testoUsurato);


                // Toast...
                Toast toast = new Toast(getApplicationContext());
                toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
                toast.setDuration(4000);
                toast.setView(layout);
                toast.show();


                tvRisultato.setText(testoUsurato.toString());
        }

Qui il layout per il toast:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/myToast"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@drawable/back_toast"
   android:orientation="vertical" >

    <ImageView
       android:id="@+id/image"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_gravity="center_horizontal" />

    <TextView
       android:id="@+id/text"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_gravity="center_horizontal"
       android:layout_margin="5dp"
       android:textColor="#000"
       android:textSize="20sp" />

</LinearLayout>
« Ultima modifica: 08 Luglio 2013, 17:24:04 CEST da Giamme »
"Tutto ciò che è necessario per il trionfo del male è che gli uomini buoni non facciano nulla."
Edmund Burke

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:Toast non scompare o looppa
« Risposta #3 il: 08 Luglio 2013, 17:56:17 CEST »
0
A prima vista in questa parte di codice non vedo stranezze. Il problema dovrebbe essere nel codice dove richiami le funzioni. Puoi postarlo?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Giamme

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    appLOOPiamo
  • Sistema operativo:
    Windows 7
Re:Toast non scompare o looppa
« Risposta #4 il: 08 Luglio 2013, 18:06:44 CEST »
0
E' troppo lungo, comunque funziona così:

L'utente inserisce dei dati, preme il bottone, parte un calcolo(x), il programma compara x con altri numeri, in base al risultato della comparazione, o si attiva la prima funzione oppure la seconda.
"Tutto ciò che è necessario per il trionfo del male è che gli uomini buoni non facciano nulla."
Edmund Burke

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:Toast non scompare o looppa
« Risposta #5 il: 08 Luglio 2013, 18:33:20 CEST »
0
E' troppo lungo, comunque funziona così:

L'utente inserisce dei dati, preme il bottone, parte un calcolo(x), il programma compara x con altri numeri, in base al risultato della comparazione, o si attiva la prima funzione oppure la seconda.

Se non puoi postarlo tutto, prova a postare l'intera funzione in cui viene richiamato il toast.

Oppure allega il file...

...non so che dirti, senza vedere il codice mi è impossibile dirti dove sta l'eventuale errore.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Giamme

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    appLOOPiamo
  • Sistema operativo:
    Windows 7
Re:Toast non scompare o looppa
« Risposta #6 il: 09 Luglio 2013, 10:47:53 CEST »
0
Non ci avevo pensato, allegare il file sarebbe una buona soluzione.

Eccolo.
"Tutto ciò che è necessario per il trionfo del male è che gli uomini buoni non facciano nulla."
Edmund Burke

Offline Giamme

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    appLOOPiamo
  • Sistema operativo:
    Windows 7
Re:Toast non scompare o looppa
« Risposta #7 il: 17 Luglio 2013, 14:45:47 CEST »
0
Fixxato, il problema non l'aveva il toast, ma il mio codice, nessun "case" negli "switch" aveva un "break;".
Quindi andava a riaprire la funzione per ogni case, più o meno 40, e questo faceva sembrare che il toast loopava.[loopasse, ndr.]

Grazie mille comunque a tutti.


-Risolto-
« Ultima modifica: 17 Luglio 2013, 15:47:42 CEST da Nicola_D »
"Tutto ciò che è necessario per il trionfo del male è che gli uomini buoni non facciano nulla."
Edmund Burke

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +153
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Toast non scompare o looppa
« Risposta #8 il: 18 Luglio 2013, 01:23:21 CEST »
0
Codice (Java): [Seleziona]
 toast.setDuration(4000);
Non c'entra con il tuo errore ma questo è sbagliato.
La duration è un flag, non è la durata in millisecondi.
Usa Toast.LENGTH_SHORT o Toast.LENGTH_LONG