Autore Topic: due AlertDialog  (Letto 634 volte)

Offline artmar

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Motorola Atrix
  • Sistema operativo:
    Windows 7
due AlertDialog
« il: 04 Maggio 2012, 11:56:20 CEST »
0
Buon giorno Vorrei saper se era possibile far apparire una prima dialog e dopo aver confermato una seconda dialog grazie  :-)

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:due AlertDialog
« Risposta #1 il: 04 Maggio 2012, 13:28:34 CEST »
0
Buon giorno Vorrei saper se era possibile far apparire una prima dialog e dopo aver confermato una seconda dialog grazie  :-)

Ciao, certo. Basta che nel clicklistener di un bottone del primo Dialog, fai avviare un secondo Dialog.

Offline artmar

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Motorola Atrix
  • Sistema operativo:
    Windows 7
Re:due AlertDialog
« Risposta #2 il: 04 Maggio 2012, 14:31:03 CEST »
0

io al posto delle intent vorrei inserire una dialog come dovrei fare??

Codice (Java): [Seleziona]
 protected Dialog onCreateDialog(int id) {
        Dialog dialog;
        switch(id) {
        case CONFIRM_DIALOG:
                final CharSequence[] items = {"10", "30", "60","100"};
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("Distanza Massima Locali");
                builder.setItems(items,new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, final int item) {
                        progressDialog = ProgressDialog.show(Languorino5Activity.this, "", "Ricerca Posizione....");
                                new Thread()
                                {
                                    public void run()
                                    {
                                        try
                                        {
                                            sleep(1500);
                                            Intent intent1 = new Intent(Languorino5Activity.this,ListaActivity.class);
                                            intent1.putExtra("distanza", items[item]);
                                            startActivity(intent1);
                                           
                                            progressDialog.dismiss();
                                           
                                        }
                                        catch(Exception e)
                                        {
                                            Log.e("tag",e.getMessage());
                                        }
                                   }
                                }.start();
                        Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); // Visualizziamo in un toast la scelta fatta
                    }
                });
                dialog = builder.create();
            break;
        case CONFIRM_DIALOG3:
                final CharSequence[] items1 = {"Nei Dintorni","Mi allontano"};
                final AlertDialog.Builder builder1 = new AlertDialog.Builder(this);
               
            builder1.setTitle("Scegli");
                builder1.setItems(items1,new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, final int item) {
                       
                                        progressDialog = ProgressDialog.show(Languorino5Activity.this, "", "Ricerca....");
                                        new Thread()
                                        {
                                            public void run()
                                            {
                                                try
                                                {
                                                       
                                                    sleep(1500);
                                                    Intent intent1 = new Intent(Languorino5Activity.this,Consigliami.class);
                                                    intent1.putExtra("Distianza", items1[item]);
                                                   
                                                    startActivity(intent1);
                                                   
                                                    progressDialog.dismiss();
                                                   
                                                }
                                                catch(Exception e)
                                                {
                                                    Log.e("tag",e.getMessage());
                                                }
                                           }
                                        }.start();
                        Toast.makeText(getApplicationContext(), items1[item], Toast.LENGTH_SHORT).show(); // Visualizziamo in un toast la scelta fatta
                    }
       
                });
                dialog = builder1.create();
            break;
           
        default:
            dialog = null;
        }
        return dialog;
        }
     

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:due AlertDialog
« Risposta #3 il: 04 Maggio 2012, 14:43:59 CEST »
0
Adesso al volo non reisco a scriverti il codice esatto, dato che qui non ho ADT su Eclipse, comunque basta che prendi il secondo Dialog e lo metti al posto del secondo Intent.

Comunque rileggendo il codice non mi è molto chiaro quello che tu voglia fare...magariQUI potresti trovare info utili.
« Ultima modifica: 04 Maggio 2012, 15:05:09 CEST da emaborsa »

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:due AlertDialog
« Risposta #4 il: 06 Maggio 2012, 20:31:18 CEST »
0
Ti lascio un esempio "nested":

Codice (Java): [Seleziona]
private void showConnectionDialog(final boolean askFiles) {
                database.connect();
                String ipNumber = "";
                String portNumber = "";
                try {
                        ipNumber = database.getIpNumber();
                        portNumber = database.getPortNumber();
                } catch (SQLException e) {
                        Log.e(TAG, "setClickListener - connectedField", e);
                }
                database.disconnect();
                String connectText = "Connettersi all'indirizzo " + ipNumber
                                + " sulla porta " + portNumber + "?";
                final String iPAddress = ipNumber;
                new AlertDialog.Builder(Main.this).setTitle(R.string.connect)
                                .setMessage(connectText).setCancelable(false)
                                .setIcon(R.drawable.question)
                                .setPositiveButton("Si", new DialogInterface.OnClickListener() {

                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
                                                NetworkInfo mWifi = connManager
                                                                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                                                if (mWifi != null && mWifi.isConnected()) {
                                                        try {
                                                                InetAddress address = InetAddress
                                                                                .getByName(iPAddress);
                                                                if (address.isReachable(1000)) {
                                                                        player.connect();
                                                                        setOnline(iPAddress);
                                                                        isConnected = true;
                                                                        Toast.makeText(getApplicationContext(),
                                                                                        "Connesso", Toast.LENGTH_SHORT)
                                                                                        .show();
                                                                        if (askFiles) {
                                                                                player.getFavoriteFolder();
                                                                        }
                                                                } else {
                                                                        throw new UnknownHostException();
                                                                }

                                                        } catch (UnknownHostException e) {
                                                                Toast.makeText(
                                                                                getApplicationContext(),
                                                                                "Unknown host " + iPAddress,
                                                                                Toast.LENGTH_LONG).show();
                                                        } catch (Exception e) {
                                                                Toast.makeText(
                                                                                getApplicationContext(),
                                                                                "Impossibile connettere a " + iPAddress,
                                                                                Toast.LENGTH_LONG).show();
                                                        }
                                                } else {
                                                        new AlertDialog.Builder(Main.this)
                                .setTitle("Errore connessione!")
                                .setMessage(
                                                "La connessione wifi risulta disattivata. Attivarla ora?")
                                .setCancelable(false).setIcon(R.drawable.wifi)
                                .setPositiveButton("Si", new DialogInterface.OnClickListener() {

                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
                                                wifi.setWifiEnabled(true);
                                                Thread t = new Thread() {
                        private int counter = 0;
                        private ProgressDialog dialog = ProgressDialog.show(Main.this, "",
                                        "Avviando Wifi...", true);

                        public void run() {
                                ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
                                NetworkInfo mWifi = connManager
                                                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                                while (mWifi.getState().equals(NetworkInfo.State.DISCONNECTED)
                                                && counter < 15) {
                                        try {
                                                sleep(1000);
                                        } catch (InterruptedException e) {
                                                Log.e(TAG, "run()", e);
                                        }
                                        counter++;
                                }
                                dialog.dismiss();
                                if (mWifi.getState().equals(NetworkInfo.State.DISCONNECTED)
                                                && counter > 10) {
                                        AlertDialog.Builder builder = new AlertDialog.Builder(
                                                        Main.this);
                                        builder.setMessage("Impossibile avviare connessione Wifi")
                                                        .setCancelable(false)
                                                        .setPositiveButton("OK",
                                                                        new DialogInterface.OnClickListener() {
                                                                                public void onClick(
                                                                                                DialogInterface dialog, int id) {
                                                                                }
                                                                        });
                                        AlertDialog dialog = builder.create();
                                        dialog.show();

                                } else if (mWifi.getState().equals(NetworkInfo.State.CONNECTED)) {
                                        player.getFavoriteFolder();
                                }
                        }
                };
                t.start();

                                        }
                                }).setNegativeButton("Annulla", null).show();
                                                }
                                        }
                                }).setNegativeButton("Annulla", null).show();
        }

Ovviamente è abbastanza bad programming style, dato che lo puoi spezzare....così:

Codice (Java): [Seleziona]
private void showConnectionDialog(final boolean askFiles) {
                database.connect();
                String ipNumber = "";
                String portNumber = "";
                try {
                        ipNumber = database.getIpNumber();
                        portNumber = database.getPortNumber();
                } catch (SQLException e) {
                        Log.e(TAG, "setClickListener - connectedField", e);
                }
                database.disconnect();
                String connectText = "Connettersi all'indirizzo " + ipNumber
                                + " sulla porta " + portNumber + "?";
                final String iPAddress = ipNumber;
                new AlertDialog.Builder(Main.this).setTitle(R.string.connect)
                                .setMessage(connectText).setCancelable(false)
                                .setIcon(R.drawable.question)
                                .setPositiveButton("Si", new DialogInterface.OnClickListener() {

                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
                                                NetworkInfo mWifi = connManager
                                                                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                                                if (mWifi != null && mWifi.isConnected()) {
                                                        try {
                                                                InetAddress address = InetAddress
                                                                                .getByName(iPAddress);
                                                                if (address.isReachable(1000)) {
                                                                        player.connect();
                                                                        setOnline(iPAddress);
                                                                        isConnected = true;
                                                                        Toast.makeText(getApplicationContext(),
                                                                                        "Connesso", Toast.LENGTH_SHORT)
                                                                                        .show();
                                                                        if (askFiles) {
                                                                                player.getFavoriteFolder();
                                                                        }
                                                                } else {
                                                                        throw new UnknownHostException();
                                                                }

                                                        } catch (UnknownHostException e) {
                                                                Toast.makeText(
                                                                                getApplicationContext(),
                                                                                "Unknown host " + iPAddress,
                                                                                Toast.LENGTH_LONG).show();
                                                        } catch (Exception e) {
                                                                Toast.makeText(
                                                                                getApplicationContext(),
                                                                                "Impossibile connettere a " + iPAddress,
                                                                                Toast.LENGTH_LONG).show();
                                                        }
                                                } else {
                                                        errorConnectionDialog();
                                                }
                                        }
                                }).setNegativeButton("Annulla", null).show();
        }

Codice (Java): [Seleziona]
private void errorConnectionDialog() {
                new AlertDialog.Builder(Main.this)
                                .setTitle("Errore connessione!")
                                .setMessage(
                                                "La connessione wifi risulta disattivata. Attivarla ora?")
                                .setCancelable(false).setIcon(R.drawable.wifi)
                                .setPositiveButton("Si", new DialogInterface.OnClickListener() {

                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
                                                wifi.setWifiEnabled(true);
                                                switchingOnWifiDialog();

                                        }
                                }).setNegativeButton("Annulla", null).show();

        }

Codice (Java): [Seleziona]
private void switchingOnWifiDialog() {
                Thread t = new Thread() {
                        private int counter = 0;
                        private ProgressDialog dialog = ProgressDialog.show(Main.this, "",
                                        "Avviando Wifi...", true);

                        public void run() {
                                ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
                                NetworkInfo mWifi = connManager
                                                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                                while (mWifi.getState().equals(NetworkInfo.State.DISCONNECTED)
                                                && counter < 15) {
                                        try {
                                                sleep(1000);
                                        } catch (InterruptedException e) {
                                                Log.e(TAG, "run()", e);
                                        }
                                        counter++;
                                }
                                dialog.dismiss();
                                if (mWifi.getState().equals(NetworkInfo.State.DISCONNECTED)
                                                && counter > 10) {
                                        AlertDialog.Builder builder = new AlertDialog.Builder(
                                                        Main.this);
                                        builder.setMessage("Impossibile avviare connessione Wifi")
                                                        .setCancelable(false)
                                                        .setPositiveButton("OK",
                                                                        new DialogInterface.OnClickListener() {
                                                                                public void onClick(
                                                                                                DialogInterface dialog, int id) {
                                                                                }
                                                                        });
                                        AlertDialog dialog = builder.create();
                                        dialog.show();

                                } else if (mWifi.getState().equals(NetworkInfo.State.CONNECTED)) {
                                        player.getFavoriteFolder();
                                }
                        }
                };
                t.start();
        }

Premetto che non sono esperto di Java, perciò potrebbe arrivare uno e dirmi che il codice scritto non è il massimo, però devo dire che funziona a dovere!