Autore Topic: problema con una dialog  (Letto 450 volte)

Offline roboso

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 7
  • Sistema operativo:
    linux debian
problema con una dialog
« il: 01 Novembre 2014, 19:56:37 CET »
0
ciao ho creato questa dialog:

Codice (Java): [Seleziona]
package com.mkyong.android;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity   {

        final Context context = this;

        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                ImageButton wod_guida = (ImageButton) findViewById(R.id.wod_guida);
                 
                // add button listener
                wod_guida.setOnClickListener(new OnClickListener() {
                       
                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                // custom dialog
                                final String[] options = { "Raid", "Istanze", "Challenge",};
                                AlertDialog.Builder builder = new AlertDialog.Builder(context, 0);
                                builder.setTitle("Scelta multipla");
                                builder.setItems(options, new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                String option = options[which];
                                // gestione dell’opzione option
                                dialog.dismiss();
                                }
                                });
                                builder.setCancelable(false);
                                builder.show();
                                 
       
        }                      
                });
}

       

       
               
        }


funziona che clicco su una immagine si apre la dialog, con tre opzioni come faccio a far aprire una nuova activity quando uno clicca su una delle tre opzioni?
ci sto provando da oggi ho letto anche la documentazione di google ma non ci sono riuscito un aiutino?

Post unito: 02 Novembre 2014, 00:54:46 CET
facendo delle prove e rileggendo  bene la documentazione, ho capito che a me serve una custom dialog.

sono riuscito a realizzarla solo che ora quando compare la mia custom con i tre bottoni senza implemetare il cambio activity con onclic() si chiude e non succede nulla

quando provo a implementare il click sul bottone (ho iniziato da uno)  va in crash l'app...

vi posto qui il codice:

Codice (Java): [Seleziona]
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity   {

    final Context context = this;
    private Button button;
   
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final ImageButton wod_guida = (ImageButton) findViewById(R.id.wod_guida);
         
        // add button listener
        wod_guida.setOnClickListener(new OnClickListener() {
           
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                // customdialog dialog
                final Dialog dialog = new Dialog(context);
                dialog.setContentView(R.layout.custom);
                dialog.setTitle("Scegli la modalità:");
                // set the custom dialog components - text, image and button
                Button dialogistanzawod = (Button) findViewById(R.id.dialogistanzawod);
                Button dalograidwod = (Button) findViewById(R.id.dalograidwod);
                Button dalogchallengedwod = (Button) findViewById(R.id.dalogchallengedwod);
                // if button is clicked, close the custom dialog
                wod_guida.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                        Button dalograidwod = (Button) findViewById(R.id.dalograidwod);
                        Button dalogchallengedwod = (Button) findViewById(R.id.dalogchallengedwod);
                        Button dialogistanzawod = (Button) findViewById(R.id.dialogistanzawod);
                        dalograidwod.setOnClickListener(new OnClickListener() {
                                 @Override
                                 public     void onClick(View arg0) {
                             
                        Intent listaraid = new Intent(MainActivity.this,ListaRaid.class);
                        startActivity(Listaraid.class);  
                                }

                           
                               
                                }
                    );
                    }
                });
     
                dialog.show();
              }
            });
        }
    }
« Ultima modifica: 02 Novembre 2014, 00:54:46 CET da roboso, Reason: Merged DoublePost »

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:problema con una dialog
« Risposta #1 il: 02 Novembre 2014, 14:16:27 CET »
0
Se hai solo 3 scelte puoi benissimo usare un AlertDialog.

Detto questo esiste il metodo per inserire un bottone. mydialog.setPositiveButton.
nei parametri puoi riscrivere il tuo OnClickListener. Dentro qui metterai il tuo startActivity.
Se invece di mettere il tuo OnClick metti null il pulsante fa chiuder il dialog.

Offline roboso

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 7
  • Sistema operativo:
    linux debian
Re:problema con una dialog
« Risposta #2 il: 02 Novembre 2014, 14:23:11 CET »
0
Grazie per la risposta tonno.

ho fatto un paio di prove e mi piace di + un alertDialog che ho fatto così;
Codice (Java): [Seleziona]
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity<which> extends Activity   {

        final Context context = this;

        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                ImageButton wod_guida = (ImageButton) findViewById(R.id.wod_guida);
                 
                // add button listener
                wod_guida.setOnClickListener(new OnClickListener() {
                       
                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                // custom dialog
                                final String[] options = { "Primi", "Secondi", "Dolci",};
                                AlertDialog.Builder builder = new AlertDialog.Builder(context, 0);
                                builder.setTitle("To interest?");
                                builder.setItems(options, new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                String option = options[which];
                                // gestione dell’opzione optione
                                dialog.dismiss();
                                }
                                });
                                builder.setCancelable(false);
                                builder.show();
                                Object Raid;
                               
                               
        }                      
                });
}

       

       
               
        }


adesso se non sbaglio devo collegare la scelta dell'utente al metodo onClick()
e che la variabile which riporta la celta fatta dall'utente... ma ho un po' di confusione in testa..
1) non ho ben capito come funziona il metodo inclik per richiamare un'altra activity
2) come utilizzare questo whitc

sto cercando degli esempi in rete ma non trovo nulla di chiaro e non capisco a livello logico il processo del metodo onClick()

Scusate ma è un mesetto che provo a programmare.... sono nabbo.


Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:problema con una dialog
« Risposta #3 il: 03 Novembre 2014, 07:39:51 CET »
+1
Dove hai messo option ==. Comunque se setti l'onClick così sai già l'utente che bottone preme. Quindi puoi già avviare activity palla piuttosto che activity quadrato. Metti dialog.set positive...

Activuty corrente MyActivity. Quindi farai
Intent i = new Intent(MyActivity.this, Activitypalla.class)
startActivity(i)

Offline roboso

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 7
  • Sistema operativo:
    linux debian
Re:problema con una dialog
« Risposta #4 il: 04 Novembre 2014, 17:54:17 CET »
0
Bo... io ho provato ma... non ci sono riuscito.
mi spiace ma la spiegazione non è proprio chiara...
Cmq grazie uguale.