RecyclerView的使用
来源:互联网 发布:星际淘宝网下载 编辑:程序博客网 时间:2024/05/01 12:12
RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持。在开发RecyclerView时充分考虑了扩展性,因此用它可以创建想到的任何种类的的布局。
代码下载地址:http://download.csdn.net/detail/u011324501/9417426
android新组件 RecyclerView的使用。
主界面布局:main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /></RelativeLayout>
adapter.xml布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:id="@+id/relativelayoutsend" android:layout_height="match_parent"> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RecyclerView"/> <RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content" style="?android:attr/ratingBarStyleSmall" android:layout_height="wrap_content" /></LinearLayout>MainActivity.java文件代码:
package com.example.ningshengcai.recyclerview;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { public static MainActivity mactivity; private RecyclerView recyclerView; String da = "111"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mactivity = this; recyclerView = (RecyclerView)findViewById(R.id.recyclerview); adddata(); } public void adddata() { recyclerView.setHasFixedSize(true); //创建一个线性布局管理器 LinearLayoutManager layoutManager = new LinearLayoutManager(this); //设置布局管理器 recyclerView.setLayoutManager(layoutManager); //创建数据集 ArrayList<String> mydataset = new ArrayList<String>(); for (int i = 0; i <= 10; i++) { mydataset.add(da); } //创建adapter ,并制定数据集 RecyclerViewAdapter adapter = new RecyclerViewAdapter(mydataset); //设置adapter recyclerView.setAdapter(adapter); }}RecyclerViewAdapter.java代码:
package com.example.ningshengcai.recyclerview;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.LinearLayout;import android.widget.RatingBar;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;/** * recyclerView adapter * @author ning */public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> { private ArrayList<String> mDataset; public class ViewHolder extends RecyclerView.ViewHolder { public TextView textview; public RatingBar ratingbar; public LinearLayout relativelayoutsend; public ViewHolder(View v) { super(v); textview = (TextView) v.findViewById(R.id.textview); ratingbar = (RatingBar)v.findViewById(R.id.ratingbar); relativelayoutsend = (LinearLayout)v.findViewById(R.id.relativelayoutsend); } } public void add(int position, String item) { mDataset.add(position, item); notifyItemInserted(position); } public void remove(String item) { int position = mDataset.indexOf(item); mDataset.remove(position); notifyItemRemoved(position); } // Provide a suitable constructor (depends on the kind of dataset) public RecyclerViewAdapter(ArrayList<String> myDataset) { mDataset = myDataset; } // Create new views (invoked by the layout manager) @Override public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter, parent, false); // set the view's size, margins, paddings and layout parameters ViewHolder vh = new ViewHolder(v); return vh; } // Replace the contents of a view (invoked by the layout manager) @Override public void onBindViewHolder(final ViewHolder holder, int position) { // - get element from your dataset at this position // - replace the contents of the view with that element holder.ratingbar.setNumStars(5);//设置显示5颗星 final String name = mDataset.get(position);//获取adapter数据 holder.textview.setText(name);//text显示接收数据 if (name!=null) { holder.textview.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { remove(name);//点击textview移除 // Toast.makeText(MainActivity.mactivity, name, Toast.LENGTH_SHORT).show(); } }); holder.relativelayoutsend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // remove(name); Toast.makeText(MainActivity.mactivity,name , Toast.LENGTH_SHORT).show(); } }); // holder.data.setText("Footer: " + mDataset.get(position)); } } // Return the size of your dataset (invoked by the layout manager) @Override public int getItemCount() { return mDataset.size(); }}在build.gradle文件中添加
compile 'com.android.support:recyclerview-v7:22.+'
0 0
- RecyclerView+RecyclerView.Adapter+RecyclerView.ViewHolder的使用
- RecyclerView的使用
- RecyclerView的使用
- RecyclerView 的使用详解
- RecyclerView的基本使用
- RecyclerView的使用
- Android -- RecyclerView的使用
- RecyclerView的使用
- CardView,RecyclerView的使用
- 关于RecyclerView的使用
- RecyclerView的使用
- RecyclerView的使用(一)
- PopupWindow + RecyclerView的使用
- RecyclerView的简单使用
- RecyclerView 的简单使用
- recyclerview的使用
- RecyclerView的使用记录
- Android RecyclerView的使用
- Mysql中创建根据第二个自增的id
- OCruntime交换方法用在处理iOS版本跨度问题的解决
- 图形处理(九)点云重建(下)法矢求取、有向距离场等值面提取
- HashMap的工作原理总结
- 自定义鼠标修改窗口大小
- RecyclerView的使用
- 图形处理(十)测地极坐标参数化
- 精华阅读第 5 期 | 移动开发精英俱乐部
- leetcode3. Longest Substring Without Repeating Characters
- 编译安装lamp
- ios实时播放PCM数据
- socket编程
- LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 16进制颜色码对照表