Costis94
Costis94

Reputation: 250

Open a DatePicker From DialogFragment

I'm trying to open a DatePickerDialog from a DialogFragment, but something is going wrong.

public class Calculator_fragment extends DialogFragment implements View.OnClickListener {

Button first;
Button second;
TextView first_calendar;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.calculator_fragment, container,
            false);


    first = (Button) rootView.findViewById(R.id.mparko);
    first.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Intent from_calendar = new Intent(getActivity(), DatePicker_from.class);
            startActivity(from_calendar);
        }
    });

The first dialog fragment is opening, but when I click the button to open the DatePicker from the following class, my app is stopping. I know the problem is from the getActivity() command.

public class DatePicker_from extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanseState){
    final Calendar from_calendar = Calendar.getInstance();
    int from_month = from_calendar.get(Calendar.MONTH);
    int from_day = from_calendar.get(Calendar.DAY_OF_MONTH);
    int from_year = from_calendar.get(Calendar.YEAR);

    return  new DatePickerDialog(getActivity(),this, from_year ,from_month, from_day);
}

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

}

03-11 16:55:59.602 13928-13928/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.seamansbutton/com.example.seamansbutton.DatePicker_from}; have you declared this activity in your AndroidManifest.xml?
                                                   at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1556)
                                                   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1431)
                                                   at android.app.Activity.startActivityForResult(Activity.java:3429)
                                                   at android.app.Activity.startActivityForResult(Activity.java:3390)
                                                   at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:813)
                                                   at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:871)
                                                   at android.support.v4.app.Fragment.startActivity(Fragment.java:916)
                                                   at com.example.seamansbutton.Calculator_fragment$1.onClick(Calculator_fragment.java:35)
                                                   at android.view.View.performClick(View.java:4275)
                                                   at android.view.View$PerformClick.run(View.java:17437)
                                                   at android.os.Handler.handleCallback(Handler.java:615)
                                                   at android.os.Handler.dispatchMessage(Handler.java:92)
                                                   at android.os.Looper.loop(Looper.java:177)
                                                   at android.app.ActivityThread.main(ActivityThread.java:4947)
                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:511)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
                                                   at dalvik.system.NativeStart.main(Native Method)

Edit 2, AndroidManifest:

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="21" />

    <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <android:uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/My.Holo.Light.FullScreen">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.default" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Contact"
            android:label="@string/title_activity_contact"></activity>
        <activity
            android:name=".DatePicker_from"
            android:label="@string/DP"></activity>

        <activity android:name=".Splash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Thank's.

Upvotes: 1

Views: 1111

Answers (1)

datiKaa
datiKaa

Reputation: 326

DialogFragment is not an Activity, that's why you get ActivityNotFoundException.

You should do something like this in your onClick() method:

DatePicker_from dialogFragment = new DatePicker_from(); dialogFragment.show(getFragmentManager(), "tag");

Upvotes: 3

Related Questions