TimePicker

  • 1 Antworten
  • Letztes Antwortdatum
F

Freaky256

Neues Mitglied
0
Versuche gerade einen TimePicker Dialog durch einen Button klick darzustellen, da jedoch die urspruencliche Methode
Code:
showDialog()
deprecated ist musste ich auf Dialog Fragment ausweichen und diese bereitet mir etwas schwierigkeiten...
Hir mal der Code:

Code:
public class Main extends Activity implements TimeDialogFragmentListener {

Button mTimeButton;
TimeDialogFragment tFrag;
 Calendar now;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reminder_edit);
            
        mTimeButton = (Button) findViewById(R.id.reminder_time);

        mTimeButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showTimeDialog();
            }
        });
}


public void showTimeDialog() {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        tFrag = TimeDialogFragment.newInstance(this, new TimeDialogFragmentListener() {
         
             public void updateChangedTime(int h, int m){
                 mTimeButton.setText(String.valueOf(h)+ ":" + String.valueOf(m));
             }
             
        }, now);
        tFrag.show(ft, "TimeDialogFragment");
    }

public void updateChangedTime(int h, int m) {}
Code:
public interface TimeDialogFragmentListener {
    public void updateChangedTime(int h, int m);
}
Code:
public class TimeDialogFragment extends DataDialogFragment {

        private static Context c;
        private static TimeDialogFragmentListener listener;
        private static int hour;
        private static int minute;
    
        public static TimeDialogFragment newInstance(Context context, TimeDialogFragmentListener l, Calendar n) {
            TimeDialogFragment dialog = new TimeDialogFragment();
            c = context;
            listener = l;

            hour = Calendar.HOUR;
            minute = Calendar.MINUTE;

            Bundle args = new Bundle();
            args.putString("title", "Set Time");
            dialog.setArguments(args);

             return dialog;
        }
   
        
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            return new TimePickerDialog(c, (OnTimeSetListener) listener, hour, minute, false);
        }


        private TimePickerDialog.OnTimeSetListener otl = new TimePickerDialog.OnTimeSetListener() {
            public void onTimeSet(TimePicker view, int h, int m) {
                hour = h;
                minute = m;
                
                ((OnTimeSetListener) listener).onTimeSet(view, hour, minute);
            }
        };
}


Als Fehlermeldugn erhalte ich jedoch, dass das Casten auf "OnTimeSetListener" nicht moeglich ist... Hat vlt jemand ne Loesung dafuer?
 
vielleicht weil du den listener oben als TimeDialogFragmentListener deklariert hast?
 
  • Danke
Reaktionen: Freaky256
Zurück
Oben Unten