2 Stimmen

Benutzerdefiniertes Dialogfeld mit einem Timepicker

Ich starte eine neue Aktivität von einer Hauptaktivität aus. Wenn auf der Hauptaktivität ein Radio-Button geklickt wird, möchte ich einen Zeitwählerdialog anzeigen. Ich erhalte einen Fehler, wenn ich auf den Radio-Button klicke, der mir den Dialog anzeigen soll.

CODE

import java.util.Calendar; 
import android.app.Dialog;
import android.support.v4.app.DialogFragment;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.widget.TimePicker;

public class Tilldate extends DialogFragment implements TimePickerDialog.OnTimeSetListener{
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Verwende die aktuelle Zeit als Standardwerte für den Picker
        final Calendar c = Calendar.getInstance();
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);

        // Erstelle eine neue Instanz von TimePickerDialog und gib sie zurück
        return new TimePickerDialog(getActivity(), this, hour, minute,
                DateFormat.is24HourFormat(getActivity()));
    }

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // Mache etwas mit der vom Benutzer gewählten Zeit
    }

}

LOGCAT

10-16 13:01:37.539: E/AndroidRuntime(1435): SCHWERWIEGENDER FEHLER: Haupt
10-16 13:01:37.539: E/AndroidRuntime(1435): java.lang.RuntimeException: Aktivität ComponentInfo{com.example.avst.callxpressmobile/com.example.avst.callxpressmobile.Tilldate} kann nicht instanziiert werden: java.lang.ClassCastException: com.example.avst.callxpressmobile.Tilldate kann nicht in android.app.Activity umgewandelt werden
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.app.ActivityThread.access$600(ActivityThread.java:130)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.os.Handler.dispatchMessage(Handler.java:99)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.os.Looper.loop(Looper.java:137)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.app.ActivityThread.main(ActivityThread.java:4745)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei java.lang.reflect.Method.invokeNative(Native Method)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei java.lang.reflect.Method.invoke(Method.java:511)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei dalvik.system.NativeStart.main(Native Method)
10-16 13:01:37.539: E/AndroidRuntime(1435): Verursacht durch: java.lang.ClassCastException: com.example.avst.callxpressmobile.Tilldate kann nicht in android.app.Activity umgewandelt werden
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.app.Instrumentation.newActivity(Instrumentation.java:1053)
10-16 13:01:37.539: E/AndroidRuntime(1435):     bei android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
10-16 13:01:37.539: E/AndroidRuntime(1435):     ... 11 weitere

Für meine Hauptaktivität schau bitte hier:

Anzahl der benutzerdefinierten Dialogfelder (Datum- und Zeitauswahl) in Bezug auf Radio-Buttons

0voto

nandeesh Punkte 24530

Weil es sich nicht um eine Aktivität handelt, entfernen Sie Tilldate aus der AndroidManifest.xml und gehen dann davon aus, dass Sie startActivity aufrufen, verwenden Sie

  DialogFragment dialog = new Tilldate();

dialog .show(getFragmentManager(), "dialog");

  dialog .show(getFragmentManager().beginTransaction(), "dialog");

Statt startActivity

Wenn Sie einen benutzerdefinierten Dialog benötigen, erweitern Sie TimePickerDialog.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X