Android学习之-----recycle网格型布局实现

在这里插入图片描述在这里插入图片描述

代码实现

package com.example.recycler.Base;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;

public abstract class BaseAdapter<T> extends RecyclerView.Adapter<BaseHolder> {

    Context context;
    ArrayList<T> data;

    public BaseAdapter(Context context, ArrayList<T> data) {
        this.context = context;
        this.data = data;
    }

    public abstract int getLayoutId();

    @NonNull
    @Override
    public BaseHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View v= LayoutInflater.from(context).inflate(getLayoutId(),null);
        return new BaseHolder(v);
    }

    @Override
    public void onBindViewHolder(@NonNull BaseHolder baseHolder, int i) {
        bangding(baseHolder,i);



    }

    public abstract void bangding(BaseHolder baseHolder,int i);

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

适配器

package com.example.recycler.Base;

import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.util.SparseArray;
import android.view.View;

public class BaseHolder extends RecyclerView.ViewHolder {

    SparseArray<View> array=new SparseArray<>();

    public BaseHolder(@NonNull View itemView) {
        super(itemView);
    }

    public View getView(int id ){
        View v=null;
        v=array.get(id);
        if (v==null){
            v=itemView.findViewById(id);
            array.put(id,v);
        }


        return v;
    }

}

适配器

package com.example.recycler.Base;

import android.content.Context;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.recycler.Bean;
import com.example.recycler.R;

import java.util.ArrayList;

public class FirstAdapter extends BaseAdapter<Bean> {
    ArrayList<Bean> beans;
    Context context;

    public FirstAdapter(Context context, ArrayList<Bean> data) {
        super(context, data);
        this.beans=data;
        this.context=context;
    }

    @Override
    public int getLayoutId() {

        return R.layout.item2;
    }

    @Override
    public void bangding(BaseHolder baseHolder, int i) {
        ImageView imageView= (ImageView) baseHolder.getView(R.id.first_img);
        imageView.setImageResource(beans.get(i).getPic());

        TextView textView= (TextView) baseHolder.getView(R.id.first_tex);
        textView.setText(beans.get(i).getName());

        TextView textView2= (TextView) baseHolder.getView(R.id.first_tex2);
        textView2.setText(beans.get(i).getWhat());
    }
}

Bean类

package com.example.recycler;

public class Bean {
    private String name;
    private Integer pic;
    private String what;

    public Bean(String name, Integer pic, String what) {
        this.name = name;
        this.pic = pic;
        this.what = what;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getPic() {
        return pic;
    }

    public void setPic(Integer pic) {
        this.pic = pic;
    }

    public String getWhat() {
        return what;
    }

    public void setWhat(String what) {
        this.what = what;
    }
}

Mainactivity:

package com.example.recycler;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.example.recycler.Base.FirstAdapter;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private RecyclerView rece;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList<Bean> list=new ArrayList<>();


        list.add(new Bean("賈婷",R.mipmap.ic_launcher,"嚶嚶嚶"));
        list.add(new Bean("賈婷",R.mipmap.ic_launcher,"嘻嘻嘻"));
        list.add(new Bean("賈婷",R.mipmap.ic_launcher,"嘟嘟嘟"));
        list.add(new Bean("賈婷",R.mipmap.ic_launcher,"唧唧唧"));
        list.add(new Bean("賈婷",R.mipmap.ic_launcher,"嚕嚕嚕"));



        GridLayoutManager manager2=new GridLayoutManager(this,2);

        LinearLayoutManager manager = new LinearLayoutManager(this);

        rece = (RecyclerView) findViewById(R.id.rece);
        FirstAdapter firstAdapter = new FirstAdapter(this, list);
        rece.setLayoutManager(manager2);
        rece.setAdapter(firstAdapter);

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值