Autore Topic: DIALOG REFRESH PROBLEMA  (Letto 836 volte)

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
DIALOG REFRESH PROBLEMA
« il: 18 Ottobre 2011, 18:46:03 CEST »
0
Ho un piccolo problema.. devo fare un dialog con due bottoni si no e voglio che il si sia accompagnato da un countdown.. un bottone del tipo: si (60) , si(59),si (58).... il problema è che quando faccio il refresh del dialog la schermata lampeggia..io voglio che invece sia un refresh in sottofondo.. mi spiego meglio , io voglio che l utente veda il refresh ma non voglio che la schermata lampeggi..
Praticamente quest'alert viene creato per chiedere una risposta immediata all'utente, se questo non risponde entro un tot di secondi , viene compiuta comunque un azione.. posto qui il codice..


 
Codice (Java): [Seleziona]
public class prova2Activity extends Activity {
long prova;
AlertDialog.Builder builder;
AlertDialog alert;
AlertDialog.Builder adb;

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        adb = new AlertDialog.Builder(this);
 alert = onCreateDialog();

        alert.show();


       
        countDownTimer = new CountDownTimer(10000, 1000) {
               
             public void onTick(long millisUntilFinished) {

                 prova =  (millisUntilFinished / 1000)-1;
                 alert.cancel(); // qui cancello il vecchio se no creo un alert sull'altro

                alert = onCreateDialog();
                alert.show();

                // mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
             }

             public void onFinish() {
                // mTextField.setText("done!");
             }    
        }.start();
}
protected AlertDialog onCreateDialog() {
                 builder = adb;
                 builder.setTitle("ATTENZIONE... AVVISO");
                 builder.setMessage(MESSAGGIO");
                 builder.setCancelable(false);

                 builder.setPositiveButton("
Si " + prova, new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int which) {
               
                                 dialog.dismiss();
                         }

                       
                         });
                 builder.setNegativeButton("
No", new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int which) {
                               
                         dialog.dismiss();

                         }
                         });

                 return builder.create();

            }
}

Un altra cosa.. io vorrei fare in modo che quando prova == 0 possa fare eliminare il dialog... come posso fare?

Grazie mille a tutti

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:DIALOG REFRESH PROBLEMA
« Risposta #1 il: 18 Ottobre 2011, 20:09:55 CEST »
0
Credo che lampeggia tutta la schermata perchè nel contdown continui a cancellare e mostrare la dialog, dovresti lavorare sul pulsante.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Re:DIALOG REFRESH PROBLEMA
« Risposta #2 il: 19 Ottobre 2011, 10:42:51 CEST »
0
Si io provo a lavorare sul pulsante .. In una versione che qui non ho riportato dentro la funzione del countdown ricreavo solo il pulsante del si. tuttavia l'alert deve essere comunque ricreato con il comando alert=builder.create() ...
Quindi non funziona!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:DIALOG REFRESH PROBLEMA
« Risposta #3 il: 19 Ottobre 2011, 10:54:01 CEST »
0
Secondo me dovresti crearti un custom dialog andando ad estendere la classe AlertDialog e inserendo li dentro il CountDownTimer e andando ad aggiornare il pulsante.
Come è stato già detto se continui a ricreare il dialog la schermata lampeggia.

PS: non serve scrivere in maiuscolo ;)

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Re:DIALOG REFRESH PROBLEMA
« Risposta #4 il: 19 Ottobre 2011, 11:09:10 CEST »
0
Sai di qualche tutorial per farlo?!

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Re:DIALOG REFRESH PROBLEMA
« Risposta #5 il: 19 Ottobre 2011, 11:09:57 CEST »
0
Intendo qualche codice già fatto non la guida di android developer! :)

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:DIALOG REFRESH PROBLEMA
« Risposta #6 il: 19 Ottobre 2011, 11:22:43 CEST »
0
Ti posto un esempio:

Questa e la classe java:
Codice: [Seleziona]
package luigi.android.it;

import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class clsCustomDialog extends Dialog implements OnClickListener
{
        Button btnOk;
        TextView txtview;
        public clsCustomDialog(Context context,String messaggio)
        {
                super(context);
                // 'Window.FEATURE_NO_TITLE' - Used to hide the title */
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                //Design the dialog in main.xml file */
                 setContentView(R.layout.alarm);
                 txtview=(TextView) findViewById(R.id.txtAlarm);
                 txtview.setText(messaggio);
                 btnOk = (Button) findViewById(R.id.btnOK);
                 btnOk.setOnClickListener(this);

        }
        public void onClick(View v)
        {
                //Listener click
                if (v == btnOk)
                {
                        dismiss();
                }
               
        }

       

}

Questo è l'xml:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:background="@color/Black" android:orientation="vertical"
        android:layout_height="fill_parent" android:layout_width="wrap_content" android:gravity="center">
        <LinearLayout android:background="@color/White"
                android:orientation="horizontal" android:layout_height="wrap_content"
                android:layout_width="wrap_content" android:layout_margin="10dp">
                <ImageView android:id="@+id/imageView1"
                        android:layout_height="match_parent" android:layout_width="50dp"
                        android:src="@drawable/pericolo"></ImageView>

                <TextView android:id="@+id/txtAlarm" android:layout_height="wrap_content"
                        android:text="Il file Parole.txt non è stato trovato."
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        android:layout_width="match_parent" android:layout_margin="5dp"
                        android:enabled="true" android:textColor="@color/CornflowerBlue"></TextView>

        </LinearLayout>
        <Button android:text="OK" android:layout_gravity="center"
                android:id="@+id/btnOK" android:layout_height="wrap_content"
                android:layout_width="match_parent" android:layout_margin="5dp"></Button>

</LinearLayout>

Ovviamente è solo un esempio che ho utilizzato io, puoi personalizzarlo come vuoi.
Per richiamarlo usi la seguente porzione di codice:
Codice: [Seleziona]
/** Display Custom Dialog */
                        clsCustomDialog customizeDialog = new clsCustomDialog(this,"Questo è un testo");
                        customizeDialog.show();

Spero che ti possa tornare utile.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Re:DIALOG REFRESH PROBLEMA
« Risposta #7 il: 19 Ottobre 2011, 12:06:18 CEST »
0
ho trovato una schermata che fa capire cosa voglio ottenere :

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:DIALOG REFRESH PROBLEMA
« Risposta #8 il: 19 Ottobre 2011, 12:09:11 CEST »
0
Eh, prendi il codice che ti ha postato Luigi e lo modifichi per ottenere quello che vuoi. Non sempre c'è il codice già fatto per quello che serve...

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Re:DIALOG REFRESH PROBLEMA
« Risposta #9 il: 20 Ottobre 2011, 17:46:50 CEST »
0
Ho trovato la soluzione.. nulla di più semplice... basta modificare la funzione onTick così
 public void onTick(long millisUntilFinished) {

                 prova =  (millisUntilFinished / 1000)-1;
                 
alert.getButton(AlertDialog.BUTTON_POSITIVE).setText("Si (" + prova + ")");


                // mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
             }

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:DIALOG REFRESH PROBLEMA
« Risposta #10 il: 20 Ottobre 2011, 17:50:06 CEST »
0
Ottimo!!
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .