kelin-hong / calendarlistview Goto Github PK
View Code? Open in Web Editor NEWA custom ListView combine with CalendarView which interactive each other.
A custom ListView combine with CalendarView which interactive each other.
我选的是3月31号,理论上往上滑动到2月31,但是2月只有28,29所以定位到2月29号,再往上滑就到了1月29号; 其实我想到的是1月31,是否我的逻辑有问题,还是所有的日历都与你一样的逻辑?
集成到APP中,快速向上连续滑动出现crash.
crash日志如下:
java.lang.NullPointerException异常。, exceptionType=java.lang.NullPointerException, exceptionClassPosition=
, seriousLevel=2, exceptionStackMessage=
java.lang.NullPointerException
at com.kelin.calendarlistview.library.CalendarView$5.onAnimationEnd(CalendarView.java:303)
at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1056)
at android.animation.ValueAnimator.access$400(ValueAnimator.java:50)
at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:644)
at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:660)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:812)
at android.view.Choreographer.doCallbacks(Choreographer.java:612)
at android.view.Choreographer.doFrame(Choreographer.java:581)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:798)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
, occurredTime=2016-08-24 17:51:12, isSynchToServer=N, deviceModel=SM-T231, deviceFactory=samsung,
compile 'com.kelin.calendarlistview:library:1.0.1'
如題,現在的控件多半都用RecyclerView了,有想要換嗎?
如果不设置对应的事件监听器,就会导致空指针异常,而我不需要下拉刷新和上拉加载更多,这样,即使我设置了一个监听器,我还是得处理,可我数据不需要改变,我怎么隐藏进度条呢...
建议在
CalendarListView
194和188行之前插入,防止空指针,同时用户不设置监听器就不显示进度条
if(onListPullListener==null)return;
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.FrameLayout.removeView(android.view.View)' on a null object reference
at com.kelin.calendarlistview.library.CalendarView$5.onAnimationEnd(CalendarView.java:315)
在CalendarView中objectAnimator2.addListener重写的onAnimationEnd中会出现空指针
今天下载了你的安装包,但是程序没有启动成功,直接崩溃了。
崩溃日志如下:
crash log.txt
机型:华为荣耀 3X
SDK Version:4.4.2
今早 编译 提示 该插件查找不到。 查了下 要改成1.4 .可以正常编译
偶尔会出现 软件报错:
Process: com.kelin.calendarlistview, PID: 2144
java.lang.NullPointerException
at com.kelin.calendarlistview.library.CalendarView$5.onAnimationEnd(CalendarView.java:303)
at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1056)
at android.animation.ValueAnimator.access$400(ValueAnimator.java:50)
at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:644)
at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:660)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:771)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:543)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:757)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5045)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.kelin.calendarlistview.library.BaseCalendarListAdapter.getDateBySection(BaseCalendarListAdapter.java:114)
at com.kelin.calendarlistview.library.CalendarListView$1.onChanged(CalendarListView.java:74)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at com.kelin.calendarlistview.library.SectionedBaseAdapter.notifyDataSetChanged(SectionedBaseAdapter.java:49)
at com.kelin.calendarlistview.CalendarActivity.-com_kelin_calendarlistview_CalendarActivity_lambda$6(CalendarActivity.java:149)
at com.kelin.calendarlistview.CalendarActivity$-void_loadNewsList
Hi
my Json:
{
"events":
[
{
"date": "03-08-2017",
"event": "event1",
},
{
"date": "04-08-2017",
"event": "event2",
}
]
}
Crashed if there is no data found for first Month (list is empty)
I just installed the app and was opening the home screen and suddenly the sample .apk fiel crashed.
Crash log i could extract from Android Studio
Process: com.kelin.calendarlistview, PID: 25736
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.FrameLayout.removeView(android.view.View)' on a null object reference
at com.kelin.calendarlistview.library.CalendarView$5.onAnimationEnd(CalendarView.java:303)
at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1239)
at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:766)
at android.animation.ValueAnimator$AnimationHandler$1.run(ValueAnimator.java:801)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:603)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
I run your sample code and give one DayNews data a month,then App crashed. Can the bug be fixed or How can I avoid it. Thanks.
您好,我使用你的範例(從github下載再import到AS),將資料改成一個月給一筆時,App 就會 Crash。請問這bug有辦法修正嗎?或是有方法可以避免呢?謝謝
part of source code
private TreeMap<String, List<ListModel>> listTreeMap = new TreeMap<>();
private void onListDataLoadFinish(String date){
Calendar calendar = getCalendarByYearMonthDay(date);
String key = CalendarHelper.YEAR_MONTH_FORMAT.format(calendar.getTime());
List<ListModel> datas = new ArrayList<>();
for(int i=5; i<6; i++) {
ListModel model = new ListModel();
model.setTitle("test" + i);
if (i < 10) {
model.setEventDate(key + "-0" + i);
} else {
model.setEventDate(key + "-" + i);
}
datas.add(model);
}
for (ListModel element:datas) {
//获取数据的日期
String day=element.getEventDate();
//给listTreeMap 添加数据
if (listTreeMap.get(day) != null) {
List<ListModel> list = listTreeMap.get(day);
list.add(element);
} else {
List<ListModel> list = new ArrayList<ListModel>();
list.add(element);
listTreeMap.put(day, list);
}
}
dayNewsListAdapter.setDateDataMap(listTreeMap);
dayNewsListAdapter.notifyDataSetChanged();
}
-----------------------------------------------------------------------------
// in build.gradle
compile 'com.kelin.calendarlistview:library:1.0.1'
the Logcat:
08-31 14:49:41.549 3868-3868/com.kelin.calendarlistview E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.kelin.calendarlistview, PID: 3868
java.util.ConcurrentModificationException
at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
at com.kelin.calendarlistview.library.PinnedHeaderListView.onScrollStateChanged(PinnedHeaderListView.java:180)
at android.widget.AbsListView.reportScrollStateChange(AbsListView.java:4339)
at android.widget.AbsListView$FlingRunnable.endFling(AbsListView.java:4470)
at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4563)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:549)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5389)
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:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.