关于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回答

irista23

2017-05-27

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

0
hd_单子
h 非常感谢!找到原因了!
h017-05-27
共2条回复

Tender10

2017-05-29

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

0

0 学习 · 7235 问题

查看课程