• RecyclerView 的点击事件


    Fruit.Class  FruitAdapter.Class   activity_main.Xml和地址里的一样

    http://blog.csdn.net/cccrunner/article/details/70502494


    FruitAdapter.Class

    package com.example.deligence.demo10;
    
    public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder>{
       List<Fruit> mfruitList;
    
        static class ViewHolder extends RecyclerView.ViewHolder {
            View fruitView; //保存子项最外层布局的实例
            ImageView fruitImage;
            TextView fruitName;
            public ViewHolder(View View) {
                super(View);
                fruitView = View;
                fruitImage = (ImageView) View.findViewById(R.id.fruit_image);
                fruitName = (TextView) View.findViewById(R.id.fruit_name);
            }
        }
    
        public FruitAdapter(List<Fruit> mfruitList) {
            this.mfruitList = mfruitList;
        }
    
        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit,parent,false);
            final ViewHolder holder = new ViewHolder(view);
            //最外层布局注册了监听事件
            holder.fruitView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int position = holder.getAdapterPosition(); //先从点击事件中获得用户点击的position
                    Fruit fruit = mfruitList.get(position);     //然后通过position拿到Fruit的实例
                    Toast.makeText(v.getContext(),"You click the View"+fruit.getFruitName(),Toast.LENGTH_SHORT).show();
                    //再使用toast弹出两种不同的内容以示区别
                }
            });
            //imageview注册了监听事件
            holder.fruitImage.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int position = holder.getAdapterPosition();
                    Fruit fruit = mfruitList.get(position);
                    Toast.makeText(v.getContext(),"You click the View"+fruit.getFruitName(),Toast.LENGTH_SHORT).show();
                }
            });
    
            return holder;
        }
    
        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {
            Fruit fruit = mfruitList.get(position);
            holder.fruitImage.setImageResource(fruit.getFruitImageId());
            holder.fruitName.setText(fruit.getFruitName());
        }
    
        @Override
        public int getItemCount() {
            return mfruitList.size();
        }
    
    
    }
    



  • 相关阅读:
    A journey on the Android Main Thread
    android的消息处理机制(图+源码分析)——Looper,Handler,Message
    用fragment创建一个选项卡
    fragment的生命周期
    动态创建fragment
    自定义自动换行布局
    Android开源框架Universal-Image-Loader完全解析(三)
    第七章 摄影技术
    第六章 镜头的成像像质评价
    第五章 镜头像差的成因,校正及规避方法
  • 原文地址:https://www.cnblogs.com/CCCrunner/p/11782035.html
Copyright © 2020-2023  润新知