【问题标题】:Open a DatePicker From DialogFragment从 DialogFragment 打开 DatePicker
【发布时间】:2016-03-11 15:18:22
【问题描述】:

我正在尝试从 DialogFragment 打开 DatePickerDialog,但出现了问题。

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);
        }
    });

第一个对话框片段正在打开,但是当我单击按钮打开 来自以下课程的 DatePicker,我的应用程序正在停止。我知道问题出在 getActivity() 命令。

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)

编辑 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>

谢谢。

【问题讨论】:

  • 您是否在 AndroidManifest.xml 中声明了此 DatePicker_from 活动?
  • @SaumikBhattacharya 是的!
  • 如果您在问题中也添加 AndroidManifest.xml 会更好! :)
  • @SaumikBhattacharya 完成! :)

标签: android android-dialogfragment android-datepicker


【解决方案1】:

DialogFragment 不是Activity,这就是你得到ActivityNotFoundException 的原因。

你应该在你的 onClick() 方法中做这样的事情:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多