onDateSet Event in aufrufender Methode abfangen

F

fr3sh_pr1nce

Neues Mitglied
0
Guten Abend,

in meinem Projekt müsste an verschiedenen Stellen ein Dialog angezeigt werden (z.B. DatePicker) und deshalb wollte ich diese Logik auslagern:

Code:
 //MainActivity.java
...
myButton.setOnClickListener(new View.OnClickListener() 
{
    @Override
     public void onClick(View view) 
    {
        Utils.showDatePickerDialog(view);
    }
});
  
  
 //Utils.java
public static void showDatePickerDialog(final View v)
{
    DatePickerDialog.OnDateSetListener setDateL = new DatePickerDialog.OnDateSetListener()
     {
        public void onDateSet(DatePicker view, int year, int month, int day)
        {
            System.out.println("You have set the date: " + day + "." + month + "." + year);
        }
    };
    final Calendar cal = Calendar.instance();
    Dialog newDialog = new DatePickerDialog(v.getContext(),
                                                    setDateL,
                                                    cal.get(Calendar.YEAR),
                                                    cal.get(Calendar.MONTH),
                                                    cal.get(Calendar.DAY_OF_MONTH));
    newDialog.show();
}
Nun zu meiner Frage:
Ist es möglich ist, das onDateSet Event auch in der MainActivity abzufangen, sodass ich dort evtl. zusätzlich auf das Event reagieren kann?

Vielen Dank
 
Ja.

Schreib deine showDatePickerDialog() so um, dass sie eine weiteren Parameter bekommen.

Code:
public interface MyOnDateSet {
 void onDateSet(DatePicker view, int year, int month, int day);
}

Dann hast du:


Code:
public static void showDatePickerDialog(final View v, final MyOnDateSet myOnDateSet) {

...
public void onDateSet(DatePicker view, int year, int month, int day)
        {
            if(myOnDateSet != null)
                myOnDateSet.onDateSet(view, year, month, day);
        }
...
}
 
Super, vielen Dank für den Tipp.
Ich probiere es morgen aus und gebe dann Rückmeldung.

Danke nochmal.
 
Alternativ zu dem Interface kannst du auch ein "DatePickerDialog.OnDateSetListener" als Parametertyp verwenden.

Das ist vielleicht sogar einfacher wie das eigene Interface...

Ist halt Geschmacksache...
 
Ich habe beide Varianten ausprobiert, und beide funktionieren sehr gut.
Die Lösung ohne Interface wird es wohl werden.

Vielen Dank monsti!
 

Ähnliche Themen

Helmut1A
  • Helmut1A
Antworten
7
Aufrufe
1.128
Helmut1A
Helmut1A
S
Antworten
3
Aufrufe
637
swa00
swa00
D
Antworten
23
Aufrufe
2.555
Data2006
D
Zurück
Oben Unten