При нажатии на число месяца приложение падает
myCalendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(@NonNull CalendarView calendarView, int year, int month, int dayOfMonth) {
int mYear = year;
int mMonth = month;
int mDay = dayOfMonth;
String selectedDate = new StringBuilder().append(mDay)
.append("-").append(mMonth + 1).append("-").append(mYear)
.append(" ").toString();
textViewHistory.setText(selectedDate);
DayDbHelper dayDbHelper = new DayDbHelper(CalendarActivity.this);
SQLiteDatabase db = dayDbHelper.getWritableDatabase();
String qwery = "SELECT " + DayContract.TrenOnDay.COLUMN_DATE + " FROM " + DayContract.TrenOnDay.TABLE_NAME + " WHERE " +
DayContract.TrenOnDay.COLUMN_DATE + " LIKE " + "'" + selectedDate + "%" + "'";
Cursor dateCursor = db.rawQuery(qwery, null);
String serch = dateCursor.getString(dateCursor.getColumnIndex(DayContract.TrenOnDay.COLUMN_DATE));
TextView history = (TextView)findViewById(R.id.textViewHistoryDayTren);
history.setText(serch);
dateCursor.close();
}
});
Вот, что говорит андроид монитор:
11-18 22:16:53.988 22421-22421/aranea.upnotealfa E/InputEventReceiver: Exception dispatching input event.
11-18 22:16:53.989 22421-22421/aranea.upnotealfa E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
11-18 22:16:53.992 22421-22421/aranea.upnotealfa E/MessageQueue-JNI: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 0
at android.database.AbstractCursor.checkPosition(AbstractCursor.java:426)
at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
at aranea.upnotealfa.CalendarActivity$1.onSelectedDayChange(CalendarActivity.java:63)
at android.widget.CalendarViewMaterialDelegate$1.onDaySelected(CalendarViewMaterialDelegate.java:256)
at android.widget.DayPickerView$2.onDaySelected(DayPickerView.java:542)
at android.widget.SimpleMonthAdapter$1.onDayClick(SimpleMonthAdapter.java:204)
at android.widget.SimpleMonthView.onDayClick(SimpleMonthView.java:528)
at android.widget.SimpleMonthView.onTouchEvent(SimpleMonthView.java:242)
at android.view.View.dispatchTouchEvent(View.java:8472)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2406)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2107)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2406)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2107)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2406)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2107)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719)
at android.app.Activity.dispatchTouchEvent(Activity.java:2785)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330)
at android.view.View.dispatchPointerEvent(View.java:8667)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4141)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4007)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3562)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3615)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3581)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3698)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3589)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3755)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3562)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3615)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3581)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3589)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3562)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5825)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5799)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5770)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5915)
at android.view.InputEve
Курсор у вас ничего не вернул.
Проверяйте, используя cursor.moveToFirst()
, на то, есть ли там данные вообще, перед вызовом dateCursor.getString
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Смысл такой: заходят три потока с очередностью в три секунды, первый поток как надо проходит остальные два ждут, но когда доходит до просыпания...
Нужно реализовать MVC приложение на JavaБудет одна общая БД для веб-приложения и для Android-приложение
Надо сделать заглавными последние буквы каждого словаНо CodeHunt не считает мой код самым коротким