android中RecyclerView控件的使用
1、RecyclerView控件不在标准的库里面,需要先引入,引入比较简单,点击控件右边的下载按钮即可
2、先添加一个新闻实体类,用来为新闻列表提供数据,news.java:
- package com.example.chenrui.common;
- public class News {
- private String title;
- private int pic;
- public News(String title, int pic) {
- this.title = title;
- this.pic = pic;
- }
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- public int getPic() {
- return pic;
- }
- public void setPic(int pic) {
- this.pic = pic;
- }
- }
3、在res/drawable/xhdpi目录下引用几个图片,做为新闻图片的资源
4、添加一个Layout XML File,做为列表项的内容,news_item.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/linearLayout"
- android:layout_width="match_parent"
- android:layout_height="100dp">
- <ImageView
- android:id="@+id/newsPic"
- android:layout_width="120dp"
- android:layout_height="80dp"
- android:layout_marginLeft="8dp"
- android:layout_marginTop="8dp"
- android:layout_marginBottom="8dp"
- android:adjustViewBounds="false"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- <TextView
- android:id="@+id/newsTitle"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="TextView"
- app:layout_constraintLeft_toRightOf="@+id/newsPic"
- app:layout_constraintRight_toRightOf="parent"
- app:layout_constraintTop_toTopOf="@+id/newsPic" />
- </android.support.constraint.ConstraintLayout>
5、添加一个适配器,这个适配器用于为RecyclerView指定使用的Layout数据项模板,以及对应的数据操作,NewsAdapter.java:
- package com.example.chenrui.app1;
- import android.support.annotation.NonNull;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.example.chenrui.common.News;
- import java.util.List;
- public class NewsAdapter extends RecyclerView.Adapter<News2Adapter.ViewHolder> {
- private List<News> newsList;
- public News2Adapter(List<News> newsList) {
- this.newsList = newsList;
- }
- @NonNull
- @Override
- public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
- View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.news_item,viewGroup,false);
- ViewHolder viewHolder = new ViewHolder(view);
- return viewHolder;
- }
- @Override
- public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
- News news = newsList.get(i);
- viewHolder.newsImage.setImageResource(news.getPic());
- viewHolder.newsTitle.setText(news.getTitle());
- }
- @Override
- public int getItemCount() {
- return newsList.size();
- }
- static class ViewHolder extends RecyclerView.ViewHolder {
- ImageView newsImage;
- TextView newsTitle;
- public ViewHolder(@NonNull View itemView) {
- super(itemView);
- newsImage = itemView.findViewById(R.id.newsPic);
- newsTitle = itemView.findViewById(R.id.newsTitle);
- }
- }
- }
6、接下来就是主体Activity了
activity_main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".Main13Activity">
- <android.support.v7.widget.RecyclerView
- android:id="@+id/list1"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
- </android.support.constraint.ConstraintLayout>
- MainActivity.java
- package com.example.chenrui.app1;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.widget.LinearLayout;
- import com.example.chenrui.common.News;
- import java.util.ArrayList;
- import java.util.List;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- List<News> newsList = new ArrayList();
- newsList.add(new News("新闻标题1",R.drawable.o1));
- newsList.add(new News("新闻标题2",R.drawable.o2));
- newsList.add(new News("新闻标题3",R.drawable.o3));
- newsList.add(new News("新闻标题4",R.drawable.o4));
- newsList.add(new News("新闻标题5",R.drawable.o5));
- NewsAdapter newsAdapter = new NewsAdapter(newsList);
- RecyclerView view = findViewById(R.id.list1);
- LinearLayoutManager layoutManager = new LinearLayoutManager(this);
- view.setLayoutManager(layoutManager);
- view.setAdapter(newsAdapter);
- }
- }
到此一个简单的RecyclerView控件示例就完成了,显示效果如下:
android中RecyclerView控件的使用的更多相关文章
- android中RecyclerView控件实现点击事件
RecyclerView控件实现点击事件跟ListView控件不同,并没有提供类似setOnItemClickListener()这样的注册监听器方法,而是需要自己给子项具体的注册点击事件. 本文的例 ...
- android中RecyclerView控件实现瀑布流布局
本文是在之前文章的基础上做的修改:android中RecyclerView控件的使用 1.修改列表项news_item.xml: <?xml version="1.0" en ...
- android中RecyclerView控件的列表项横向排列
本文是在上一篇文章的基础上做的修改:android中RecyclerView控件的使用 1.修改列表项news_item.xml:我这里是把新闻标题挪到了新闻图片的下面显示 <?xml vers ...
- android中RecyclerView控件实现长按弹出PopupMenu菜单功能
之前写过一篇文章:android中实现简单的聊天功能 现在是在之前功能的基础上,添加一个长按聊天记录,删除对应聊天记录的功能 RecyclerView控件,没有对应的长按事件,我们需要自己手工添加,修 ...
- Android中ListView控件的使用
Android中ListView控件的使用 ListView展示数据的原理 在Android中,其实ListView就相当于web中的jsp,Adapter是适配器,它就相当于web中的Servlet ...
- android中ListView控件&&onItemClick事件中获取listView传递的数据
http://blog.csdn.net/aben_2005/article/details/6592205 本文转载自:android中ListView控件&&onItemClick ...
- Android中ExpandableListView控件基本使用
本文採用一个Demo来展示Android中ExpandableListView控件的使用,如怎样在组/子ListView中绑定数据源.直接上代码例如以下: 程序结构图: layout文件夹下的 mai ...
- android中倒计时控件CountDownTimer分析
android中倒计时控件CountDownTimer分析 1 示例代码 new CountDownTimer(10000, 1000) { public void onTick(long milli ...
- Android 中常见控件的介绍和使用
1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.la ...
随机推荐
- AngularJS使用ngMessages进行表单验证
名称为"ngMessages"的module,通过npm install angular-messages进行安装.在没有使用ngMessages之前,我们可能这样写验证: < ...
- 在ASP.NET Web API中使用OData的Action和Function
本篇体验OData的Action和Function功能.上下文信息参考"ASP.NET Web API基于OData的增删改查,以及处理实体间关系".在本文之前,我存在的疑惑包括: ...
- Spring Boot开发之明月千城(一)
原文地址:http://qindongliang.iteye.com/blog/2205633 最近数据分析的项目也即将告一段落了,中间也积累了很多知识,特此记录一下.其中用的最爽的Web组合开发就是 ...
- Iphone控件大全
Iphone的常用控件有哪些?看看下面 一 视图UIView和UIWindow iphone视图的规则是:一个窗口,多个视图.UIWindow相当于电视机,UIViews相当于演员. 1.显示数据的视 ...
- VisualStudio: Vistual Studio XML 智能提示(转载)
原文地址:http://blog.csdn.net/hispring/article/details/5332312. 开发中经常遇到要和各种各样的 XML 打交道,编辑 XML 文件时最头痛的便是要 ...
- unity,荧光效果(bloom)实现过程
两个月前,刚接触unity的时候费了半天劲儿做了个荧光效果(见:http://www.cnblogs.com/wantnon/p/4430749.html),今天终于抽空整理了一下,把过程写下来. 荧 ...
- JAVA 解压压缩包中指定文件或实现压缩文件的预览及下载单个或多个指定的文件
业务逻辑中还要判读用户是否有此文件的防问权限 2017-04-20 新增文件与文件夹图标显示及过滤高亮显示功能: 2017-05-20 新增搜索向前及向后.及更新下载功能.更新文件路径显示: 测试地址 ...
- 超级账本环境搭建fabric
:gotar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz vi ~/.profile export PATH=$PATH:/usr/local/go/b ...
- Asp.Net 拦截请求自定义处理
需求: 在Aps.Net 应用中,对于浏览器请求的部分url的地址自定义处理,不交给路由系统或页面. 解决方案: 在全局文件Global.asax中 ,提供Application_BeginReque ...
- jQuery.data() 的实现方式,jQuery16018518865841457738的由来,jQuery后边一串数字的由来
原文地址: http://xxing22657-yahoo-com-cn.iteye.com/blog/1042440 jQuery.data() 的实现方式 jQuery.data() 的作用是为普 ...