开发中经常使用到RecylerView这个控件,对于RecyclerView而言,填充数据的环节是必不可少的,而数据大部分情况下都是多条的,所以在此记录一下;
数组资源文件一般放在 res–> values –>attrs.xml(没有就自己创建一个)
注意:Resoures的获取在Activity中、Fragment和其他类中是有区别的,例如:
Activity中:
Resources resources = getResources();
Fragment中:
Resources resources = getActivity().getResources();
其它类中:
Resources resources = mContext.getResources();
第一种情况:
<resources> <string-array name="language_values"> <item>Android</item> <item>Java</item> <item>C++</item> <item>Python</item> </string-array> </resources>
此时,在Java代码中就可以直接获取数据资源,代码如下:
String [ ] languages = getResources().getStringArray(R.array.language_values);
第二种情况:
<resources> <string-array name="language_values"> <item>@string/android</item> <item>@string/java</item> <item>@string/c</item> <item>@string/python</item> </string-array> </resources>
在Java代码中获取方式:
List<Model> modelList = new ArrayList<>(); String[] languages = mContext.getResources().getStringArray(R.array.languages_values); TypedArray ta = mContext.getResources().obtainTypedArray(R.array.languages_values); modelList.clear(); for (int i = 0; i < languages.length; i++) { int id = ta.getResourceId(i, -1); modelList.add(new Model(id, languages[i])); } ta.recycle(); //这里不要忘记
备注:这里的Model是一个实体类,有两个属性一个是int类型,一个是String类型,可根据自己需要改变,生成合适的构造方法
进行数据填充;
水平有限,难免会有错误,如有错误,烦请指出,共同进步,谢谢!
原文链接:https://blog.csdn.net/xyl826/article/details/98332209?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165277103516782390540614%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165277103516782390540614&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-24-98332209-null-null.article_score_rank_blog&utm_term=%E8%B5%84%E6%BA%90
暂无评论内容