Android--RecyclerView

//导入依赖

'com.android.support:recyclerview-v7:27.0.2'

MainActicity


package 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值