Autore Topic: Dialog e classi  (Letto 720 volte)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Dialog e classi
« il: 24 Maggio 2011, 15:25:12 CEST »
0
Ho 2 classi in una ho il codice per visualizzare il Dialog tipo :
Codice (Java): [Seleziona]
@Override
        protected Dialog onCreateDialog(int id) {
        switch(id){
                case Carrello_utils.INSERT_CARRELLO:
                        Builder build_cart = createDialog("Inserire nel carrello?","Alert");
                        build_connettivita.setPositiveButton("Ok", new DialogInterface.OnClickListener(){

                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                                dialog.dismiss();
                                                ....
                                                  finish();
                                }
                        });
                        return build_cart.show();
                                OMISS
}
                return null;
        }

poi ho inserito nell'onClick dell'imageview questo codice :
Codice (Java): [Seleziona]
Carrello_utils cart = new Carrello_Utils(this);
cart.aggiungi_carrello();


ecco il contenuto di Carrello_utils :
Codice (Java): [Seleziona]
public class Carrello_utils extends Activity {
        private Context context;
        public static final int INSERT_CARRELLO = 3;
        public static final int DELETE_CARRELLO = 4;
       
        public Carrello_utils(Context c) {
                context = c;
        }

        public void aggiungi_carrello() {
                //Visualizza popup di conferma
        showDialog(INSERT_CARRELLO);
        }      
   
    public void cancella_carrello() {
        showDialog(DELETE_CARRELLO);
        }              

la mia domanda è : cliccando l'ImageView mi dovrebbe visualizzare il Dialog ma non va....perchè ??   :-\

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #1 il: 24 Maggio 2011, 15:27:43 CEST »
0
La domanda che dovresti porti veramente è "Per quale motivo ho esteso la classe Activity e non la faccio gestire dal framework Android?"

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #2 il: 24 Maggio 2011, 15:33:20 CEST »
0
La domanda che dovresti porti veramente è "Per quale motivo ho esteso la classe Activity e non la faccio gestire dal framework Android?"

Emmmm tradotto ? :D

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #3 il: 24 Maggio 2011, 15:36:20 CEST »
0
Carrello_utils estende la classe Activity.
Non fai partire l'Activity facendola gestire al framework android ma la instanzi tu con new Carrello_Utils(this);

Perché fai questo?

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #4 il: 24 Maggio 2011, 15:39:20 CEST »
0
Bella domanda....la verità è che con sti context e this ancora non ci ho capito tantissimo!!! cioè quello che sò è che this si passa per dirgli che il contesto è "questo" ed il context viene usato per inglobare l'informazione all'esterno...o per meglio dire credo che sia così  :-\

Mi spieghi ???? ti pregooooo  :-[ :-[

però extends Activity devo metterlo perchè altrimenti non mi vede lo showDialog()...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #5 il: 24 Maggio 2011, 15:47:00 CEST »
0
Il problema è che non sapendo cosa sia this (che NON è affatto il context) e non capendo cosa sia context (che non è affatto usato per inglobare l'informazione all'esterno) è quasi impossibile dare spiegazioni.

Se hai questi problemi ti consiglio di accantonare android e dedicarti a java. Questo è un ottimo inizio: http://highscore.googlecode.com/files/Thinking%20In%20Java%204th.pdf

Buono studio.

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #6 il: 24 Maggio 2011, 15:55:35 CEST »
0
Scusa ma mi sono spiegato male...forse con un esempio....
Codice (Java): [Seleziona]
public class Pippo{
   String minnie;
public void nome(String minnie){
    //Se devo valorizzare minnie della classe allora devo usare il this e quindi
    this.minnie = minnie;
}
spero di essermi spiegato così...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #7 il: 24 Maggio 2011, 16:00:34 CEST »
0
Non vorrei insistere, ma solo leggendo il tuo commento "Se devo valorizzare minnie della classe allora devo usare il this" si capisce che non ti è molto chiaro il significato di this. Sopratutto dal fatto che fai intendere che il this è soltanto un selettore di scope.

Se devi valorizzare minnie della classe non potrai mai usare this. Puoi usare this solo per valorizzare minnie dell'istanza della classe.

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #8 il: 24 Maggio 2011, 16:06:26 CEST »
0
Ok, non avrò usato la nomenclatura tecnica come la tua ma sò a che serve, sono una persona che sta cercando di imparare e lo fa anche cimentandosi in queste cose altrimenti avrei potuto mettere tutto nella stessa classe e non mi sarei nemmeno posto il problema di utilizzare this o quant'altro, grazie comunque!

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #9 il: 24 Maggio 2011, 16:12:18 CEST »
+1
Ok, allora per utilizzare il metodo onCreateDialog dell'altra activity nella tua activity devi scrivere questo:

Codice (Java): [Seleziona]
((Activity)context).showDialog(INSERT_CARRELLO)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #10 il: 24 Maggio 2011, 16:15:11 CEST »
0
grazie per la risposta, il problema è che avevo provato questa linea di codice prima di scrivere sul forum ma mi mandava in crash l'applicazione per questo pensavo fosse sbagliata..

ho rimesso a posto il codice ed ho tolto come dice extends Activity ora va. Grazie

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #11 il: 24 Maggio 2011, 16:22:44 CEST »
0
ho tolto come dice extends Activity ora va

Non poteva essere quello l'errore.

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #12 il: 24 Maggio 2011, 16:36:28 CEST »
0
Ho tolto activity e poi ho sostituito getBaseContext con contex nel metodo in cui richiamavo la classe

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Dialog e classi
« Risposta #13 il: 24 Maggio 2011, 21:02:12 CEST »
0
Ho tolto activity e poi ho sostituito getBaseContext con contex nel metodo in cui richiamavo la classe

E' la seconda che ha risolto il problema.