recycleview的基本使用以及在使用时遇到的问题

步骤:

1、添加依赖

在AS的build.gradle中添加依赖,然后同步一下就可以引入依赖包:


 
 
  1. dependencies {
  2. ...
  3. compile 'com.android.support:recyclerview-v7:25.3.+'
  4. }

2、布局文件(主页面)

<?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="match_parent">
    
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycleview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

3、Adapter适配器代码

package brother.com.recycleviewtext;

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 android.widget.Toast;

import java.util.List;

/**
 * Created by Administrator on 2017/6/18.
 */

public class FuiltAdapter extends RecyclerView.Adapter<FuiltAdapter.ViewHolder> {

    private List<Fuilt>mFlist;
    private View view;


    static class  ViewHolder extends RecyclerView.ViewHolder{

       View fuiltview;
        ImageView fuimage;
        TextView funame;
       public ViewHolder(View itemView) {
           super(itemView);
           fuiltview=itemView;
           fuimage = (ImageView) itemView.findViewById(R.id.image);
           funame = (TextView) itemView.findViewById(R.id.fuilt_name);
       }
   }
   public FuiltAdapter(List<Fuilt> fuiltslist){
       mFlist=fuiltslist;
   }
       
       //点击事件       

 @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.layout_item,parent,false);
         final ViewHolder holder = new ViewHolder(view);
       holder.fuiltview.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               int position=holder.getAdapterPosition();
              Fuilt fuilt=mFlist.get(position);
               Toast.makeText(v.getContext(), "你点击的是"+fuilt.getFuiltname(), Toast.LENGTH_SHORT).show();
           }
       });
        holder.fuiltview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int postion=holder.getAdapterPosition();
                Fuilt fuilt=mFlist.get(postion);
                Toast.makeText(v.getContext(), "你点击的是"+fuilt.getImageId(), Toast.LENGTH_SHORT).show();
            }
        });
        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Fuilt fuilt=mFlist.get(position);
        holder.fuimage.setImageResource(fuilt.getImageId());
        holder.funame.setText(fuilt.getFuiltname());
    }

    @Override
    public int getItemCount() {
        return mFlist.size();
    }
}
 

4、javaBeen代码

package brother.com.recycleviewtext;

/**
 * Created by Administrator on 2017/6/18.
 */

public class Fuilt {
    private  String fuiltname;
    private  int imageId;

    public Fuilt(String fuiltname, int imageId) {
        this.fuiltname = fuiltname;
        this.imageId = imageId;
    }

    public String getFuiltname() {
        return fuiltname;
    }

    public void setFuiltname(String fuiltname) {
        this.fuiltname = fuiltname;
    }

    public int getImageId() {
        return imageId;
    }

    public void setImageId(int imageId) {
        this.imageId = imageId;
    }
}

5、主界面代码

package brother.com.recycleviewtext;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private List<Fuilt> mFuiltList=new ArrayList<>();
    private RecyclerView recycleview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initFuilt();
        recycleview= (RecyclerView) findViewById(R.id.recycleview);
        recycleview.setLayoutManager(new LinearLayoutManager(this));
        recycleview.setAdapter(new FuiltAdapter(mFuiltList));
    }

    private void initFuilt() {
        for (int i=0;i<10;i++){
            Fuilt find1 = new Fuilt("find1", R.mipmap.find_1);
            mFuiltList.add(find1);
            Fuilt find2 = new Fuilt("find2", R.mipmap.find_2);
            mFuiltList.add(find2);
            Fuilt find3 = new Fuilt("find3", R.mipmap.find_3);
            mFuiltList.add(find3);
            Fuilt find4 = new Fuilt("find4", R.mipmap.find_4);
            mFuiltList.add(find4);
            Fuilt find5 = new Fuilt("find5", R.mipmap.find_5);

        }
    }
}


    遇到的问题:

  

     引入recycleview是版本不兼容报上面错误。


   解决办法:


    把版本修改成下面的写法解决:


 


 
 


猜你喜欢

转载自blog.csdn.net/qq_26554909/article/details/73431267