- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Crashlytics 中得到了这个崩溃报告:
SimpleMonthView.java line 684
android.widget.SimpleMonthView$MonthViewTouchHelper.getItemDescription
-----
Fatal Exception: java.util.IllegalFormatConversionException
%d can't format java.lang.String arguments
It's a Samsung bug in their Lollipop UI implementation. It affects Galaxy S4, S5, Note 3 and probably more devices.
newInstance
中设置了年份范围静态方法。
public class MyDatePickerDialog extends DialogFragment implements OnClickListener {
private static final String TAG = "DatePickerDialog";
public static LinearLayout dayMonth;
public static int maxMonth;
static int minYear;
static int maxYear;
static int id;
private static TextView dayTV;
private static TextView monthTV;
private static TextView yearTV;
private static TextView dayNameTV;
private static int mColor = 0;
private static GradientDrawable circle;
private static Typeface mTypeFace = null;
private static OnDateSetListener mCallBack;
private TextView doneTV;
private TextView cancelTV;
FragmentManager fragmentManager;
public MyDatePickerDialog() {
}
public static MyDatePickerDialog newInstance(OnDateSetListener onDateSetListener, int requestID) {
JDF jdf = new JDF();
return newInstance(onDateSetListener, requestID, jdf.getIranianYear(), jdf.getIranianMonth(), jdf.getIranianDay());
}
public static MyDatePickerDialog newInstance(OnDateSetListener onDateSetListener, boolean darkTheme) {
return newInstance(onDateSetListener, 0);
}
public static MyDatePickerDialog newInstance(OnDateSetListener onDateSetListener) {
return newInstance(onDateSetListener, 0);
}
public static MyDatePickerDialog newInstance(OnDateSetListener onDateSetListener, int requestID, int year, int month, int day) {
MyDatePickerDialog datePickerDialog = new MyDatePickerDialog();
mCallBack = onDateSetListener;
Date.setDate(year, month, day, false);
int thisYear = new JDF().getIranianYear();
datePickerDialog.setYearRange(thisYear, thisYear + 1);
id = requestID;
mColor = 0;
mTypeFace = null;
maxMonth = 0;
return datePickerDialog;
}
public static void updateDisplay(int year, int month, int day) {
try {
MyDatePickerDialog.dayTV.setText(String.valueOf(day));
MyDatePickerDialog.monthTV.setText(JDF.monthNames[month - 1]);
MyDatePickerDialog.yearTV.setText(String.valueOf(year));
MyDatePickerDialog.dayNameTV.setText(new JDF().getIranianDayName(year, month, day));
} catch (Exception e) {
Log.i(TAG, "updateDisplay -----> " + e);
}
}
@Override
public void onStart() {
setRetainInstance(true);
super.onStart();
}
@Override
public int getTheme() {
return super.getTheme();
}
private android.app.DatePickerDialog.OnDateSetListener dateSetListener() {
return new android.app.DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
}
};
}
@Override
public View onCreateView(LayoutInflater layoutInflater,
ViewGroup container, Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
final View view = layoutInflater.inflate(R.layout.date_layout,
container, false);
if (mColor == 0)
try {
mColor = getResources().getColor(R.color.blue);
} catch (Resources.NotFoundException e) {
//Sentry MyLog.w(TAG, new Throwable().getStackTrace()[0].getLineNumber(), e);
e.printStackTrace();
}
circle = new GradientDrawable();
try {
circle.setCornerRadius(getResources().getDimension(
R.dimen.circle_radius));
circle.setColor(mColor);
circle.setAlpha(50);
} catch (Resources.NotFoundException e) {
e.printStackTrace();
}
fragmentManager = getChildFragmentManager();
dayTV = view.findViewById(R.id.day);
monthTV = view.findViewById(R.id.month);
yearTV = view.findViewById(R.id.year);
dayNameTV = view.findViewById(R.id.day_name);
doneTV = view.findViewById(R.id.done);
cancelTV = view.findViewById(R.id.cancel);
dayMonth = view.findViewById(R.id.dayMonthBack);
if (mTypeFace != null) {
dayTV.setTypeface(mTypeFace);
monthTV.setTypeface(mTypeFace);
yearTV.setTypeface(mTypeFace);
dayNameTV.setTypeface(mTypeFace);
doneTV.setTypeface(mTypeFace);
cancelTV.setTypeface(mTypeFace);
}
doneTV.setTextColor(mColor);
cancelTV.setTextColor(mColor);
view.findViewById(R.id.blue_card)
.setBackgroundColor(mColor);
dayMonth.setOnClickListener(this);
yearTV.setOnClickListener(this);
doneTV.setOnClickListener(this);
cancelTV.setOnClickListener(this);
updateDisplay(Date.getYear(), Date.getMonth(), Date.getDay());
view.findViewById(R.id.dayMonthBack).performClick();
return view;
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.year) {
dayTV.setAlpha(0.5f);
monthTV.setAlpha(0.5f);
yearTV.setAlpha(1f);
YearMainFragment yearMainFragment = new YearMainFragment();
switchFragment(yearMainFragment.yearMainFragement(minYear, maxYear));
} else if (v.getId() == R.id.dayMonthBack) {
dayTV.setAlpha(1f);
monthTV.setAlpha(1f);
yearTV.setAlpha(0.5f);
switchFragment(new MonthMainFragment());
} else if (v.getId() == R.id.done) {
if (mCallBack != null) {
Calendar calendar = Calendar.getInstance();
JDF j = new JDF();
j.setIranianDate(Date.getYear(), Date.getMonth(), Date.getDay());
try {
calendar = j.getGregorianCalendar(Date.getYear(),
Date.getMonth(), Date.getDay());
} catch (Exception e) {
Log.i(TAG, "-----> Exception onClosedItemClick: " + e);
}
mCallBack.onDateSet(id, calendar, Date.getYear(), Date.getMonth(), Date.getDay(), dayNameTV.getText().toString());
}
dismissAllowingStateLoss();
} else if (v.getId() == R.id.cancel) {
dismissAllowingStateLoss();
}
}
void switchFragment(final Fragment fragment) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.frame_container, fragment);
transaction.addToBackStack(null);
try {
transaction.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
/* ---------- Getters & Setters ---------- */
public static GradientDrawable getCircle() {
return circle;
}
public static int getColor() {
return mColor;
}
public static Typeface getTypeFace() {
return mTypeFace;
}
public void setTypeFace(Typeface typeface) {
mTypeFace = typeface;
}
public static int getRequestID() {
return id;
}
public void setRequestID(int requestID) {
id = requestID;
}
public void setMainColor(int color) {
mColor = color;
}
public void setYearRange(int _minYear, int _maxYear) {
minYear = _minYear;
maxYear = _maxYear;
}
public void setInitialDate(int year, int month, int day) {
Date.setDate(year, month, day, false);
}
public void setInitialDate(Calendar calendar) {
JDF jdf = new JDF();
jdf.setGregorianDate(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH) + 1,
calendar.get(Calendar.DAY_OF_MONTH));
Date.setDate(jdf.getIranianYear(), jdf.getIranianMonth(),
jdf.getIranianDay(), false);
}
public void setFutureDisabled(Boolean disabled) {
if (disabled) {
JDF jdf = new JDF();
maxMonth = jdf.getIranianMonth() - 11;
maxYear = jdf.getIranianYear();
if (minYear > maxYear)
minYear = maxYear - 1;
if (Date.getMonth() > jdf.getIranianMonth())
Date.setMonth(jdf.getIranianMonth());
if (Date.getDay() > jdf.getIranianDay())
Date.setDay(jdf.getIranianDay());
if (Date.getYear() > jdf.getIranianYear())
Date.setYear(jdf.getIranianYear());
} else
maxMonth = 0;
}
/* ---------- End of Getters & Setters ---------- */
public interface OnDateSetListener {
void onDateSet(int id, Calendar calendar, int year,
int month, int day, String dayName);
}
}
# OS Version: 5.1.1
# Device: Galaxy Core Prime
# RAM Free: 38.8%
# Disk Free: 12.8%
#0. Crashed: main
at java.util.Formatter.badArgumentType + 1489(Formatter.java:1489)
at java.util.Formatter.transformFromInteger + 1689(Formatter.java:1689)
at java.util.Formatter.transform + 1461(Formatter.java:1461)
at java.util.Formatter.doFormat + 1081(Formatter.java:1081)
at java.util.Formatter.format + 1042(Formatter.java:1042)
at java.util.Formatter.format + 1011(Formatter.java:1011)
at java.lang.String.format + 1803(String.java:1803)
at android.content.res.Resources.getString + 668(Resources.java:668)
at android.content.Context.getString + 390(Context.java:390)
at android.widget.SimpleMonthView$MonthViewTouchHelper.getItemDescription + 684(SimpleMonthView.java:684)
at android.widget.SimpleMonthView$MonthViewTouchHelper.onPopulateNodeForVirtualView + 628(SimpleMonthView.java:628)
at com.android.internal.widget.ExploreByTouchHelper.createNodeForChild + 397(ExploreByTouchHelper.java:397)
at com.android.internal.widget.ExploreByTouchHelper.createNode + 324(ExploreByTouchHelper.java:324)
at com.android.internal.widget.ExploreByTouchHelper.access$100 + 49(ExploreByTouchHelper.java:49)
at com.android.internal.widget.ExploreByTouchHelper$ExploreByTouchNodeProvider.createAccessibilityNodeInfo + 741(ExploreByTouchHelper.java:741)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos + 805(AccessibilityInteractionController.java:805)
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread + 155(AccessibilityInteractionController.java:155)
at android.view.AccessibilityInteractionController.access$400 + 53(AccessibilityInteractionController.java:53)
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage + 1146(AccessibilityInteractionController.java:1146)
at android.os.Handler.dispatchMessage + 102(Handler.java:102)
at android.os.Looper.loop + 135(Looper.java:135)
at android.app.ActivityThread.main + 5910(ActivityThread.java:5910)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke + 372(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1405(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main + 1200(ZygoteInit.java:1200)
--
Fatal Exception: java.util.IllegalFormatConversionException: %d can't format java.lang.String arguments
at java.util.Formatter.badArgumentType + 1489(Formatter.java:1489)
at java.util.Formatter.transformFromInteger + 1689(Formatter.java:1689)
at java.util.Formatter.transform + 1461(Formatter.java:1461)
at java.util.Formatter.doFormat + 1081(Formatter.java:1081)
at java.util.Formatter.format + 1042(Formatter.java:1042)
at java.util.Formatter.format + 1011(Formatter.java:1011)
at java.lang.String.format + 1803(String.java:1803)
at android.content.res.Resources.getString + 668(Resources.java:668)
at android.content.Context.getString + 390(Context.java:390)
at android.widget.SimpleMonthView$MonthViewTouchHelper.getItemDescription + 684(SimpleMonthView.java:684)
at android.widget.SimpleMonthView$MonthViewTouchHelper.onPopulateNodeForVirtualView + 628(SimpleMonthView.java:628)
at com.android.internal.widget.ExploreByTouchHelper.createNodeForChild + 397(ExploreByTouchHelper.java:397)
at com.android.internal.widget.ExploreByTouchHelper.createNode + 324(ExploreByTouchHelper.java:324)
at com.android.internal.widget.ExploreByTouchHelper.access$100 + 49(ExploreByTouchHelper.java:49)
at com.android.internal.widget.ExploreByTouchHelper$ExploreByTouchNodeProvider.createAccessibilityNodeInfo + 741(ExploreByTouchHelper.java:741)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos + 805(AccessibilityInteractionController.java:805)
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread + 155(AccessibilityInteractionController.java:155)
at android.view.AccessibilityInteractionController.access$400 + 53(AccessibilityInteractionController.java:53)
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage + 1146(AccessibilityInteractionController.java:1146)
at android.os.Handler.dispatchMessage + 102(Handler.java:102)
at android.os.Looper.loop + 135(Looper.java:135)
at android.app.ActivityThread.main + 5910(ActivityThread.java:5910)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke + 372(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1405(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main + 1200(ZygoteInit.java:1200)
#0. Crashed: main
at java.util.Formatter.badArgumentType + 1489(Formatter.java:1489)
at java.util.Formatter.transformFromInteger + 1689(Formatter.java:1689)
at java.util.Formatter.transform + 1461(Formatter.java:1461)
at java.util.Formatter.doFormat + 1081(Formatter.java:1081)
at java.util.Formatter.format + 1042(Formatter.java:1042)
at java.util.Formatter.format + 1011(Formatter.java:1011)
at java.lang.String.format + 1803(String.java:1803)
at android.content.res.Resources.getString + 668(Resources.java:668)
at android.content.Context.getString + 390(Context.java:390)
at android.widget.SimpleMonthView$MonthViewTouchHelper.getItemDescription + 684(SimpleMonthView.java:684)
at android.widget.SimpleMonthView$MonthViewTouchHelper.onPopulateNodeForVirtualView + 628(SimpleMonthView.java:628)
at com.android.internal.widget.ExploreByTouchHelper.createNodeForChild + 397(ExploreByTouchHelper.java:397)
at com.android.internal.widget.ExploreByTouchHelper.createNode + 324(ExploreByTouchHelper.java:324)
at com.android.internal.widget.ExploreByTouchHelper.access$100 + 49(ExploreByTouchHelper.java:49)
at com.android.internal.widget.ExploreByTouchHelper$ExploreByTouchNodeProvider.createAccessibilityNodeInfo + 741(ExploreByTouchHelper.java:741)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos + 805(AccessibilityInteractionController.java:805)
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread + 155(AccessibilityInteractionController.java:155)
at android.view.AccessibilityInteractionController.access$400 + 53(AccessibilityInteractionController.java:53)
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage + 1146(AccessibilityInteractionController.java:1146)
at android.os.Handler.dispatchMessage + 102(Handler.java:102)
at android.os.Looper.loop + 135(Looper.java:135)
at android.app.ActivityThread.main + 5910(ActivityThread.java:5910)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke + 372(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1405(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main + 1200(ZygoteInit.java:1200)
最佳答案
三星的 Lollipop 实现中有一个错误。如果启用了 Talkback,这会在某些语言环境中发生。您可以通过在带有 Holo 主题的三星设备上强制使用 DatePicker 来修复。
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isBrokenSamsungDevice())
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Holo_Light_Dialog);
}
private static boolean isBrokenSamsungDevice() {
return (Build.MANUFACTURER.equalsIgnoreCase("samsung")
&& isBetweenAndroidVersions(
Build.VERSION_CODES.LOLLIPOP,
Build.VERSION_CODES.LOLLIPOP_MR1));
}
private static boolean isBetweenAndroidVersions(int min, int max) {
return Build.VERSION.SDK_INT >= min && Build.VERSION.SDK_INT <= max;
}
关于android - 自定义 DatePicker 在运行 Android API 级别 21 和 22 的三星设备上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57553251/
我正在尝试使用 720Kb 日期选择器。 https://github.com/720kb/angular-datepicker 使用简单示例时: 我收到打击错误: angular.js:1
我开始使用react-datepicker组件。 https://github.com/Hacker0x01/react-datepicker 我运行了该示例,现在我想对其进行调整,使其没有初始值。示
我正在使用 Angular-ui 日期选择器,除了日期选择器的初始状态外,一切实际上都工作正常。我选择日期后,看起来不错。见下文: 初始状态 在选择器中选择日期后 所以,显然我在第一种情况下得到了日期
我需要为回历日期设置日期选择器。我可以使用 jquery datepicker 或 bootstrap datepicker。但是我写了这段代码
在选择范围时,我遇到了 jquery UI datepicker 的一个奇怪问题。在提出问题之前,我正在研究许多其他人编写的代码。他们以优化的顺序包含了 jquery 工具和 UI,因此所有功能都可以
我有两个剑道 DatePickers 来选择工作的开始和结束日期。作业由多个任务组成,其中包含自己的完成日期(任务在网格中列出,每条记录使用 kendo DatePicker 选择完成日期) 当用户设
我想将功能添加到 Material 日期选择器,以便能够选择周.. 因此,当我从一行中选择一个日期时,我希望它输出从一周开始到一周结束的日期范围。 我之前在常规 jquery 日历上这样做过--检查照
在 SwiftUI 中使用新的 (iOS 14) DatePicker,它按预期工作并且在模拟器和设备上看起来很好,但是一旦日历弹出,我会在输出窗口中收到几行警告。这有点烦人! 虽然日志贴在下面,但看
我将如何创建 doctrine_orm_datetime_range使用 jQuery UI 日期选择器的 Sonata Admin Bundle 中的过滤器? 我尝试了以下方法,但不起作用: pro
有人知道如何设置 gem bootstrap-datepicker-rails 吗?我按照 http://rubydoc.info/gems/bootstrap-datepicker-rails/0.
在 kartik DatePicker Yii2 中有没有办法 - 我可以禁用大于当前日期的日期? 例如:如果今天是 2016 年 3 月 14 日,则应禁用 2016 年 3 月 15 日的日历日期
在 UIDatePicker 我们可以做这样的事情 datePicker.timeZone = TimeZone(secondsFromGMT: 5*60*60) 为了指定日期选择器的时区。 但是如何
我在 FullCalendar ( http://www.eyecon.ro/datepicker/ ) 页面正下方添加了一个 datePicker ( http://fullcalendar.io
我在一个 Polymer 项目中有两个 Vaadin-datepickers。一个有开始日期,一个有结束日期。我想确保结束日期总是在开始日期之后。我阅读了 API 文档,他们说您可以使用 min ma
我正在Angular 6中搜索Datepicker,它可以显示基于回历日历的阿拉伯日期。 似乎找不到一个。是否有可用的东西,或者我们需要从头开始构建它。 最佳答案 Ng bootstrap或angul
JavaFX8 中是否有一种方法可以从 Java 代码中选择 DatePicker 中的日期(作为文本)?我想以这样一种方式激活带有 DatePicker 的控件,用户可以在不使用鼠标的情况下编辑日期
我在一个 Polymer 项目中有两个 Vaadin-datepickers。一个有开始日期,一个有结束日期。我想确保结束日期总是在开始日期之后。我阅读了 API 文档,他们说您可以使用 min ma
我正在尝试验证datepicker,因为startDate应始终小于EndDate。如果我手动更改日期,则 StartDate 有效,但 EndDate 无效。 我的JavaScript代码: $(d
我是 jquery 和 javascript 的菜鸟。因此,虽然我看过很多解决我的问题的 SO 帖子,但我无法将各种解决方案“组装”成适合我的东西。 我的上下文:查询结果显示在表单中。在每一行中,其中
我正在开发 Windows Phone 8.1 应用程序。我正在尝试使用 DatePickerFlyout 但没有取得适当的成功。我正在选择日期并尝试用选定的日期设置按钮内容,但它没有设置。当我调试以
我是一名优秀的程序员,十分优秀!