問題機智onSelectedDayChange是,當我打開日曆視圖,並單擊聚焦的一天,沒有任何反應。例如,我想看看今天的細節。現在我打開日曆視圖,今天是重點。所以我不得不點擊其他日子點擊今天查看詳細信息。有沒有什麼竅門能解決這個問題?替代onSelectedDayChange calendarview android
0
A
回答
0
CalendarView派生自可以生成onClick()事件的View。您可以嘗試從視圖中捕獲onClick()事件。只是一個想法
0
我做了以下類來解決這個問題。
public class CustomCalendarView extends CalendarView {
private final String LOG_HEADER = "CAL:VW";
private Date previousSelectedDate = new Date();
private OnDateChangeListener listener;
private CheckSameSelectedDateAsyncTask task = new CheckSameSelectedDateAsyncTask();
public CustomCalendarView(Context context) {
super(context);
}
public CustomCalendarView(Context context, AttributeSet attribute) {
super(context, attribute);
}
public CustomCalendarView(Context context, AttributeSet attribute, int defStyle) {
super(context, attribute, defStyle);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if ((task.getStatus() == AsyncTask.Status.PENDING) || (task.getStatus() == AsyncTask.Status.FINISHED)) {
task = new CheckSameSelectedDateAsyncTask();
task.execute();
}
return false;
}
private void checkSameSelectedDate() {
Date selectedDate = new Date(super.getDate());
if (selectedDate.getDay() == previousSelectedDate.getDay() &&
selectedDate.getMonth() == previousSelectedDate.getMonth() &&
selectedDate.getYear() == previousSelectedDate.getYear()) {
if (listener != null) {
this.listener.onSameSelectedDayChange(this, selectedDate.getYear(), selectedDate.getMonth(), selectedDate.getDay());
}
}
this.previousSelectedDate = selectedDate;
}
public void setSameSelectedDayChangeListener(OnDateChangeListener listener) {
this.listener = listener;
}
public interface OnDateChangeListener extends CalendarView.OnDateChangeListener {
void onSameSelectedDayChange(CalendarView view, int year, int month, int day);
}
private class CheckSameSelectedDateAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
try {
//Note: Breaking point between 75 - 100
Thread.sleep(300);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
checkSameSelectedDate();
}
}
}
相關問題
- 1. Android CalendarView setOnDateChangeListener僅供選擇 - 不滾動
- 2. Android CalendarView事件
- 3. 如何從CalendarView
- 4. Android calendarview字體大小
- 5. Android CalendarView設置事件
- 6. 從CalendarView獲取月份Android
- 7. Android CalendarView類無法找到
- 8. CalendarView中的小數字android
- 9. Android CalendarView主題問題
- 10. 日曆onSelectedDayChange和SQLite和
- 11. Android的CalendarView窗口小部件API
- 12. 在CalendarView類對象上找不到類
- 13. 修改CalendarView?
- 14. 有關CalendarView的幾個問題
- 15. Android替代jtable?
- 16. Android替代MetroGridHelper
- 17. CalendarView getDate()不返回時間
- 18. CalendarView無法正常工作
- 19. DatePicker CalendarView
- 20. Android蜂窩CalendarView不尊重XML屬性
- 21. Android中的CalendarView無法顯示正確的月份
- 22. 的Android CalendarView更改文本天風格
- 23. CalendarView:區分水龍頭
- 24. 替代WinForms的Android
- 25. Android 4.2.2替代webview
- 26. Android的替代AsyncTask
- 27. 替代android的setRotationY?
- 28. Android 1.6 setZOrderOnTop替代
- 29. 替代Android的ReplacementSpan
- 30. 來自arraylist的Android studio calendarview事件