Autore Topic: Tentativo di modulizzare metodi... fallito  (Letto 837 volte)

Offline Androi-dé!

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Windows 7
Tentativo di modulizzare metodi... fallito
« il: 11 Marzo 2012, 17:23:57 CET »
0
Come da titolo vorrei provare a modulizzare dei metodi (che richiamano ad esempio alertdialog, menù, ecc...) in una classe in modo da poterli richiamare dalle varie activity passandogli i parametri che mi interessano senza doverli riscrivere ogni volta in ciascuna activity.

Ho provato a farlo all'interno della stessa e non ho avuto problemi ma come scrivo il codice in un'altra classe e provo a richiamarlo ho subito incontrato delle difficoltà.
Nel mio caso specifico stavo provando a richiamare un'alertdialog:

Codice (Java): [Seleziona]
                @Override
                        public boolean onTouch(View v, MotionEvent event) {
                                String title = "questo è il titolo dell'alert";
                        String text = "questo è il contenuto dell'alert...";
                        apriPannelloInformazioni(title, text);
                                return false;                          
                        }


// Nella stessa classe (Activity) ho:


    public void apriPannelloInformazioni(String title, String text) {
       
                AlertDialog.Builder infoAlert = new AlertDialog.Builder(this);
                infoAlert.setTitle(title);
                infoAlert.setMessage(text);
                infoAlert.setCancelable(false);
                infoAlert.setPositiveButton("Chiudi",new OnClickListener(){
                public void onClick(DialogInterface dialog, int id){
                        dialog.dismiss();
                        }
                });            
                AlertDialog alert = infoAlert.create();
                alert.show();
    }

E fin qui funziona perfettamente, pertanto all'interno della stessa Activity potrei creare altri eventi che all'azione eseguita passano una stringa per il titolo e una per il testo e l'alertdiaolg compare come deve essere.

Il problema invece di modulizzare l'alertdialog in un'altra classe presumo sia data da questo:

Codice (Java): [Seleziona]
AlertDialog.Builder infoAlert = new AlertDialog.Builder(this);
In quanto il "this" dovrebbe essere la classe stessa e non so, per mia ignoranza, come passarlo alla classe che esegue il codice, perchè la chiamata non sarà più:

Codice (Java): [Seleziona]
apriPannelloInformazioni(title, text);
ma dovrà essere qualcosa del tipo:

Codice (Java): [Seleziona]
apriPannelloInformazioni(title, text, CLASSE_DA_CUI_FACCIO_LA_CHIAMATA);
E quindi il "this" tra parentesi di  ...new AlertDialog.Builder(this)... dovrà essere sostituito da questo parametro.
Ed è proprio questo parametro che non so come si faccia a passare.

Spero tra l'altro di non aver detto castronerie.  o_O

Offline Androi-dé!

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Windows 7
Re:Tentativo di modulizzare metodi... fallito
« Risposta #1 il: 12 Marzo 2012, 00:03:06 CET »
0
Ho risolto da solo.
Se a qualcuno interessa la soluzione era passare il context.

Nell'activity dove voglio fa apparire l'alertdialog:
Codice (Java): [Seleziona]
Context cnt = this;
e quindi richiamo:
Codice (Java): [Seleziona]
Miaclasse alertdialog = new Miaclasse ();  
alertdialog.apriPannelloInformazioni(title, text, cnt);

Di conseguenza in "Miaclasse" ho il metodo per far apparire l'alert che riceve le 2 stringhe + il context e tra le parentesi "famose" di cui parlavo prima non ci sarà più il "this" ma il nome della variabile del context stesso:

Codice (Java): [Seleziona]
        public void apriPannelloInformazioni(String title, String text, Context cnt) {
               
                AlertDialog.Builder infoAlert = new AlertDialog.Builder(cnt);
                infoAlert.setTitle(title);
...
...
...

Spero possa essere di aiuto a qualche malavventurato come me, non so se tale logica si possa applicare o meno ad altre situazioni (come ad esempio richiamare un menù dinamicamente, ecc...) ma di certo per l'alertdialog funziona  O:-)

Offline donkilluminati

  • Nuovo arrivato
  • *
  • Post: 31
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    GALAXY NEXT
  • Sistema operativo:
    2.2
Re:Tentativo di modulizzare metodi... fallito
« Risposta #2 il: 23 Maggio 2012, 11:42:20 CEST »
0
ti ringrazio.......anche se inconsapevolmente mi hai dato una grossa mano....:D

Offline Androi-dé!

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Windows 7
Re:Tentativo di modulizzare metodi... fallito
« Risposta #3 il: 23 Maggio 2012, 12:38:01 CEST »
0
ti ringrazio.......anche se inconsapevolmente mi hai dato una grossa mano....:D

Spero possa essere di aiuto a qualche malavventurato come me, non so se tale logica si possa applicare o meno ad altre situazioni (come ad esempio richiamare un menù dinamicamente, ecc...) ma di certo per l'alertdialog funziona  O:-)

Non a caso mi ero risposto da solo per questo...  :-P