こんにちは私は、ユーザーがEditTextをタップするとポップアップするdatepickerダイアログを持っています。それは別のデバイスで動作しますが、Android 6.0を実行しましたが、同じアプリをkitkatを実行するテーブルで試してみましたが、クラッシュしました。kitkatでminDateまたはmaxDateを設定するとAndroid DatePickerがクラッシュする
setMinDateコードまたはsetMaxDateコードであることを確認できます。これを実行した後にページがクラッシュしなかったためです。
これはログである:
E/AndroidRuntime:致命的な例外:メイン
プロセス:com.xxxxxx.pointofsale、PID:13402 java.lang.NullPointerExceptionがandroid.widgetました。 CalendarView.onScroll(CalendarView.java:1216)android.widget.CalendarView.accessの $ 900(CalendarView.java:76) at android.widget.CalendarView $ 2.onScroll(CalendarView.java:1077) android.widget.AbsListView.onLayoutでandroid.widget.ListView.layoutChildren(ListView.java:1745) でandroid.widget.AbsListView.invokeOnItemScrollListener(AbsListView.java:1463) (AbsListView.java:2149) ででandroid.view.View.layout(View.java:15125) とandroid.view.ViewGroup.layout(ViewGroup.java:4862) (android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888) )でアンドロイド。ウィジェット.LinearLayout.layoutVertical(LinearLayout.java:1742) とandroid.widget.LinearLayout.onLayout(LinearLayout.java:1651) android.view.View.layout(View.java: (FrameLayout.java:450)の にあります。 android.widget.LinearLayout.setChildFrameでandroid.view.ViewGroup.layout(ViewGroup.java:4862) でandroid.view.View.layout(View.java:15125) (LinearLayout.java:1888) でで android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1877) at android.widget.LinearLayout.onLayout(LinearLayout.java:1653) at andr oid.view.View.layout(View.java:15125) android.view.ViewGroup.layout(ViewGroup.java:4862) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) at android。ウィジェット.FrameLayout.onLayout(FrameLayout.java:450) android.view.View.layout(View.java:15125) with android.view.ViewGroup.layout(ViewGroup.java:4862) android.widget。 FrameLayout.layoutChildren(FrameLayout.java:515) とandroid.widget.FrameLayout.onLayout(FrameLayout.java:450) at android.view.View.layout(View.java:15125) android.view.ViewGroup。レイアウト(ViewGro (View.java:4862) とandroid.widget.FrameLayout.layoutChildren(FrameLayout.java:515) at android.widget.FrameLayout.onLayout(FrameLayout.java:450) at android.view.View.layout(View。Javaの:15125) android.view.ViewGroup.layout(ViewGroup.java:4862) でandroid.widget.LinearLayout.layoutVerticalでandroid.widget.LinearLayout.setChildFrame(LinearLayout.java:1888) (LinearLayout.javaで: 1742) android.widget.LinearLayout.onLayout(LinearLayout.java:1651) android.view.View.layout(View.java:15125) android.view.ViewGroup.layout(ViewGroup.java:4862) android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) とandroid.widget.FrameLayout.onLayout(FrameLayout.java:450) android.view.View.layout(View.jav A:15125)android.widget.LinearLayout.layoutVertical(LinearLayout.javaでandroid.view.ViewGroup.layout(ViewGroup.java:4862)android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888) で で: 1742) android.widget.LinearLayout.onLayout(LinearLayout.java:1651) android.view.View.layout(View.java:15125) android.view.ViewGroup.layout(ViewGroup.java:4862) android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) android.widget.FrameLayout.layoutChildren(FrameLayout.java:515) とandroid.widget.FrameLayout.onLayout(FrameLayout.java:450) android.view.View.layout(View.java:1) (ViewRootImpl.java:2029)の の は、 android.view.Choreographer $ CallbackRecord.runで android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6231) でandroid.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1192) (振付で 。 java:788) android.view.Choreographer.doCallbacks(Choreographer.java:591) android.view.Choreographer.doFrame(Chore android.os.Handler.handleCallbackでographer.java:560) でandroid.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:774) (Handler.java:808) android.os.Handler.dispatchMessageで(Handler.java:103) とandroid.os.Looper.loop(Looper.java:193) とandroid.app.ActivityThread.main(ActivityThread.java:5292) at java.lang.reflect.Method.invokeNative (Nativ
は、これは私のコードです:
final DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
mCalendar.set(Calendar.YEAR, year);
mCalendar.set(Calendar.MONTH, monthOfYear);
mCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
String myFormat = "yyyy-MM-dd"; //In which you need put here
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
mSelectedDate = sdf.format(mCalendar.getTime());
etDate.setText(Utils.formatDate(mSelectedDate, "yyyy-MM-dd", "EEEE, d MMMM yyyy"));
getTravelSchedules();
}
};
private final View.OnClickListener mDateViewOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (etDate.getText().toString().equals("")) {
Toast.makeText(getApplicationContext(), "Please select a destination first!", Toast.LENGTH_LONG).show();
return;
}
Date today = new Date();
Calendar c = Calendar.getInstance();
c.setTime(today);
c.add(Calendar.DATE, +7);
final long maxDate = c.getTime().getTime();
c.setTime(today);
final long minDate = c.getTime().getTime();
DatePickerDialog datePickerDialog = new DatePickerDialog(mContext, R.style.DialogTheme, mDateSetListener, mCalendar
.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH),
mCalendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.getDatePicker().setMinDate(minDate);
datePickerDialog.getDatePicker().setMaxDate(maxDate);
datePickerDialog.show();
}
};
のように、この機能を使用することができます。 – user3718908
私はこれを試しても、問題は依然として持続し、アプリがクラッシュします。 – user3718908
は基本的にクラッシュが何を示しているのですか?正確に –