关于MainMenuAdapter适配的问题?
来源:5-3 首页实现_主菜单实现(难点)
sd_单子
2017-05-26 20:57:23
这一块都没看懂是添加了什么功能,onCreateViewHolder以及重写的方法,达到怎样的效果?
布局这一块没看懂,按照视频写了代码在运行接收getMainMenus时报错了,表现为过了闪屏页面直接停止运行,
在DataUtil.java和MainFragment.java中的两处报错。
1 2 3 4 5 6 7 8 | public static List<Menu> getMainMenus( int icons[], String names[]){ List <Menu>menus= new ArrayList<>(); for ( int i= 0 ;i<icons.length;i++){ Menu menu= new Menu(icons[i],names[i]); //这里 menus.add(menu); } return menus; } |
报错内容:"<10> Binder_2@831696185480" prio=5 runnable
java.lang.Thread.State: RUNNABLE
at dalvik.system.NativeStart.run(NativeStart.java:-1)
1 | MainMenuAdapter mainMenuAdapter= new MainMenuAdapter(getActivity(),DataUtil.getMainMenus(menusIcons,menus)); |
报错内容:
java.lang.Thread.State: RUNNABLE
at com.imooc.testend.fragment.MainFragment.onActivityCreated(MainFragment.java:49)
代码是一样的,目前还没找到问题所在……
2回答
1、这部分代码作用?
这一块的代码都是在实现主菜单的效果。
2、ViewHolder的作用?
ViewHolder相当于一个临时的储存器,作用就是把你getView()方法中每次返回的View存起来,而不用每次用View的时候就得从布局文件中读取,提高程序的运行效率。
3、MainMenu的实现过程?
1)MainMenu用到的是RecyclerView,这个控件设置内容同样需要Adapter适配器,因此需要创建MainMenuAdapter继承RecyclerView的Adapter;
2)这个Adapter又需要ViewHolder泛型类型,故需要定义MainMenuViewHolder
3)onCreateViewHolder()回调方法就是在创建Viewholder的时候系统自动调用的,类似于Activity中的onCreate(),都是需要在这里面读取布局文件
4)布局文件有了,就可以通过布局文件往MainMenuViewHolder中设置相关view元素了。
4、报错问题:
先来查看你的DataUtil.java中调用getMainMenus()方法的地方参数传的有没有问题,icons[]数组有和names[]数组有没有在资源文件中添加并且被定义,你可以通过添加断点并且单步跟踪调试,跟踪一下这两个参数值。
Tender10
2017-05-29
好的,能自己找到原因很好哦,如果还有什么不明白的问题,可以在问答里继续提问。
相似问题