使用android 5.0在三星中崩溃的DatePicker

Vil*_*ari 24 android exception android-datepicker samsung-mobile android-5.0-lollipop

我在使用棒棒糖5.0在三星note 2设备中创建一个日期选择器时遇到了麻烦.例外是:

java.util.IllegalFormatConversionException: %d can not format java.lang.String arguments
    at java.util.Formatter.badArgumentType(Formatter.java:1489)
    at java.util.Formatter.transformFromInteger(Formatter.java:1689)
    at java.util.Formatter.transform(Formatter.java:1461)
    at java.util.Formatter.doFormat(Formatter.java:1081)
    at java.util.Formatter.format(Formatter.java:1042)
    at java.util.Formatter.format(Formatter.java:1011)
    at java.lang.String.format(String.java:1803)
    at android.content.res.Resources.getString(Resources.java:1457)
    at android.content.Context.getString(Context.java:397)
    at android.widget.SimpleMonthView$MonthViewTouchHelper.getItemDescription(SimpleMonthView.java:684)
    at android.widget.SimpleMonthView$MonthViewTouchHelper.onPopulateNodeForVirtualView(SimpleMonthView.java:628)
    at com.android.internal.widget.ExploreByTouchHelper.createNodeForChild(ExploreByTouchHelper.java:377)
    at com.android.internal.widget.ExploreByTouchHelper.createNode(ExploreByTouchHelper.java:316)
    at com.android.internal.widget.ExploreByTouchHelper.access$100(ExploreByTouchHelper.java:50)
    at com.android.internal.widget.ExploreByTouchHelper$ExploreByTouchNodeProvider.createAccessibilityNodeInfo(ExploreByTouchHelper.java:711)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfVirtualNode(AccessibilityInteractionController.java:1179)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1091)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1087)
    at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:888)
    at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:155)
    at android.view.AccessibilityInteractionController.access$400(AccessibilityInteractionController.java:53)
    at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:1236)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:5944)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)
Run Code Online (Sandbox Code Playgroud)

我使用了官方android工作室页面中提供的示例:

public static class DatePickerFragment extends DialogFragment
            implements DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);
        // Create a new instance of DatePickerDialog and return it

        DatePickerDialog dpd = new DatePickerDialog(getActivity(), this,year, month, day);
        return dpd;


    }
    @Override
    public void onDateSet(DatePicker view, int year, int month, int day) {
        // get the date here

    }
}
Run Code Online (Sandbox Code Playgroud)

我称之为:

DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getFragmentManager(), "datePicker");
Run Code Online (Sandbox Code Playgroud)

在其他设备工作正常.

我也尝试用DatePicker它创建我自己的布局,非常简单但也崩溃.这是一些Android漏洞吗?

ste*_*222 1

忘记内置的日期选择器。只有一种方法可以摆脱崩溃:使用提供独立实现的库。

对于日期选择器片段: https: //github.com/flavienlaurent/datetimepicker

对于日期选择器小部件:https://github.com/SingleCycleKing/CustomTimePicker(这更多的是一个起点,而不是一个现成的解决方案)