Android读书笔记之用RecyclerView显示列表项
2015-12-16 23:18
459 查看
该读书笔记是自己阅读《Android编程权威指南》和《The.Big.Nerd.Ranch.Guide.2nd.Edition》(《Android编程权威指南》第二版)所做的一些笔记。
在上一篇文章(见:http://blog.csdn.net/u014285517/article/details/50331971)中只是在Fragment中放了一个TextView,略显单薄。。。
这篇文章在Fragment中放个 RecyclerView来显示一个0-99的列表数据。
首先来看核心的ListFragment的代码:
关于RecyclerView这里不多讲了。。
布局文件fragment_list.xml如下:
Activity部分代码几乎没变,就是把fragment =new BlankFragment();
改成了fragment = new ListFragment();这里代码就不贴了,可以看Android Fragment学习一那篇博客。
还有个表示列表项的类:
这个列表项很简单,不过你可以在此基础上进行补充。
在上一篇文章(见:http://blog.csdn.net/u014285517/article/details/50331971)中只是在Fragment中放了一个TextView,略显单薄。。。
这篇文章在Fragment中放个 RecyclerView来显示一个0-99的列表数据。
首先来看核心的ListFragment的代码:
package com.example.zhan.fragmenttest; import android.app.Fragment; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import java.util.ArrayList; import java.util.List; /** * Created by zhang on 12/16/2015. */ public class ListFragment extends Fragment { private RecyclerView mRecyclerView; private ItemAdapter mItemAdapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_list,container,false); mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));//不要忘了。。 //产生列表数据 List<Item> itemList = new ArrayList<>(); for (int i = 0;i < 100;i++) { Item item = new Item(); item.setId(i); itemList.add(item); } mItemAdapter = new ItemAdapter(itemList); mRecyclerView.setAdapter(mItemAdapter); return view; } private class ItemHolder extends RecyclerView.ViewHolder { private TextView mTextView; public ItemHolder(View itemView) { super(itemView); mTextView = (TextView) itemView; } } private class ItemAdapter extends RecyclerView.Adapter<ItemHolder> { private List<Item> mItems; public ItemAdapter(List<Item> items) { mItems = items; } @Override public ItemHolder onCreateViewHolder(ViewGroup viewGroup, int i) { LayoutInflater layoutInflater = LayoutInflater.from(getActivity()); View view = layoutInflater.inflate(android.R.layout.simple_list_item_1, viewGroup,false); return new ItemHolder(view); } @Override public void onBindViewHolder(ItemHolder viewHolder, int i) { Item item = mItems.get(i); //这里开始直接传数值,结果被当做资源ID了。。。。。 //然后就android.content.res.Resources$NotFoundException viewHolder.mTextView.setText(String.valueOf(item.getId())); } @Override public int getItemCount() { return mItems.size(); } } }
关于RecyclerView这里不多讲了。。
布局文件fragment_list.xml如下:
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/recycler_view" android:layout_height="match_parent" android:layout_width="match_parent"/>
Activity部分代码几乎没变,就是把fragment =new BlankFragment();
改成了fragment = new ListFragment();这里代码就不贴了,可以看Android Fragment学习一那篇博客。
还有个表示列表项的类:
package com.example.zhan.fragmenttest; /** * Created by zhang on 12/16/2015. */ public class Item { private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } }
这个列表项很简单,不过你可以在此基础上进行补充。
相关文章推荐
- android 小细节1
- Android高效率编码-findViewById()的蜕变-注解,泛型,反射
- Android高效率编码-findViewById()的蜕变-注解,泛型,反射
- Android 性能优化之(1)-MAT使用教程
- 【Android】google plus、Facebook登陆sdk集成打包出aar的使用步骤
- Android Studio——外部类监听事件
- 设计模式2—观察者模式
- Android 的样式和主题
- Android中的加载动画效果
- 【android】第一个简单的轮子(多图展示控件--ImageViewGroup)
- Android 之fragment显示 FragmentTransaction show and hide
- 【android_温故知新】android 的事件处理
- Android探究--使用ViewHolder提高ListView效率
- Android Context 到底是什么?
- [置顶] Android Studio导入.so文件
- Android开发快速入门(环境配置、Android Studio安装)
- 用RxJava写的一个Android的小Demo
- Android 自定义 permission
- Android动态改变应用程序语言
- android 启动界面广告的显示