关于MainMenuAdapter适配的问题?

关于MainMenuAdapter适配的问题?

这一块都没看懂是添加了什么功能,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[]数组有没有在资源文件中添加并且被定义,你可以通过添加断点并且单步跟踪调试,跟踪一下这两个参数值。

  • sd_单子 提问者 #1
    跟踪加入数据没问题,加到第8个之后有个java.lang.IndexOutOfBoundsException : Invalid array range: 8 to 8就应用停止运行了
    2017-05-27 22:24:08
  • sd_单子 提问者 #2
    非常感谢!找到原因了!
    2017-05-27 22:30:47
Tender10 2017-05-29 12:40:53

好的,能自己找到原因很好哦,如果还有什么不明白的问题,可以在问答里继续提问。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师