Android--RecyclerView
来源:互联网 发布:dede 做旅游cms 编辑:程序博客网 时间:2024/05/26 15:58
//导入依赖
'com.android.support:recyclerview-v7:27.0.2'MainActicitypackage lx.bwie.com.recyclerview;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.DividerItemDecoration;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.widget.Toast;import adpter.MyAdapter;public class MainActivity extends AppCompatActivity implements MyAdapter.OnItemClickListener{ private RecyclerView rv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv = findViewById(R.id.rv); //设置一个线性布局管理器 //垂直 rv.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)); //水平 // rv.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)); //设置网格管理器 //rv.setLayoutManager(new GridLayoutManager(this,2,GridLayoutManager.HORIZONTAL,false)); //rv.setLayoutManager(new GridLayoutManager(this,3,GridLayoutManager.VERTICAL,false)); //设置分割线 //rv.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.HORIZONTAL)); rv.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); //设置适配器 MyAdapter adapter = new MyAdapter(this); rv.setAdapter(adapter); //设置点击事件 adapter.setOnItemClickListener(this); } @Override public void setOnItemClick(View view, int position) { //条目点击事件 Toast.makeText(this, "条目" + position, Toast.LENGTH_SHORT).show(); } @Override public void setOnLongItemClick(View view, int position) { //长按事件 Toast.makeText(this, "长按条目"+position, Toast.LENGTH_SHORT).show(); }}//Adapte适配器
package adpter;import android.content.Context;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 lx.bwie.com.recyclerview.R;public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private Context context; public MyAdapter(Context context) { this.context = context; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item,parent,false); ViewHolder holder= new ViewHolder(view); return holder; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { if (position%2 == 0){ //设置文本 holder.tv.setText("哎呀"); }else{ holder.tv.setText("你妹吧MVP"); } if (null != onItemClickListener){ //回调点击事件 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //回调 onItemClickListener.setOnItemClick(v,position); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { onItemClickListener.setOnLongItemClick(v,position); return true;//消费掉 } }); } } @Override public int getItemCount() { return 30; } //定义自己的事件接口 public interface OnItemClickListener{ //条目点击事件 void setOnItemClick(View view,int position); //条目长按事件 void setOnLongItemClick(View view, int position); } // private OnItemClickListener onItemClickListener; public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener; } //声明自己的ViewHolder class ViewHolder extends RecyclerView.ViewHolder{ private final ImageView img; private final TextView tv; public ViewHolder(View itemView) { super(itemView); img = itemView.findViewById(R.id.img); tv = itemView.findViewById(R.id.tv); } }}//布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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" android:orientation="vertical" tools:context="lx.bwie.com.recyclerview.MainActivity"><android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rv" ></android.support.v7.widget.RecyclerView></LinearLayout>//条目布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" android:id="@+id/img" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" /></LinearLayout>
阅读全文
0 1
- Android RecyclerView
- android RecyclerView
- android-RecyclerView
- Android RecyclerView
- Android RecyclerView
- Android--RecyclerView
- Android RecyclerView
- Android RecyclerView
- android RecyclerView
- Android RecyclerView
- Android RecyclerView
- android RecyclerView
- Android RecyclerView
- Android RecyclerView
- [Android]RecyclerView
- Android RecyclerView
- Android RecyclerView
- android recyclerview
- Spring MVC 表单验证
- 腾讯大数据高级产品总监洪桃李:决胜未来的4大关键能力
- 第一次机房收费系统——结账
- outlook webmail 2016搜尋技巧
- 以太坊常识
- Android--RecyclerView
- 使用git把代码上传到github
- D
- 20171207memo
- IIS 返回 405
- 给页面增加遮罩效果
- 转载-Camera服务之--架构浅析
- SSH简单使用:
- MyBatis的Mapper接口以及Example的实例函数及详解