栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Databinding与RecyclerView的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Databinding与RecyclerView的使用

1、build.gradle的配置

android {
    ...
    buildFeatures {
        dataBinding true
    }
}

2、进行简单布局

activity_main的布局


    
        
    
item_layout的布局


    
        
    
    
        
        
        

    

MainActivity的使用

import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.LinearLayoutManager;

import android.os.Bundle;

import com.example.bindingrecyclerview.adapter.RecyclerViewAdapter;
import com.example.bindingrecyclerview.databinding.ActivityMainBinding;
import com.example.bindingrecyclerview.model.User;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private ActivityMainBinding binding;
    private RecyclerViewAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
        ArrayList users = new ArrayList<>();
        for (int i = 0; i <1000;i++){
            User user = new User();
            user.setAge("20");
            user.setUsername("姓名"+i);
            user.setRose("管理员"+i);
            users.add(user);
        }
        binding.recyclerview.setLayoutManager(new LinearLayoutManager(this));
        adapter = new RecyclerViewAdapter(users);
        binding.recyclerview.setAdapter(adapter);
    }
}

adapter 的使用

import android.view.LayoutInflater;
import android.view.ViewGroup;

import com.example.bindingrecyclerview.R;
import com.example.bindingrecyclerview.databinding.ItemLayoutBinding;
import com.example.bindingrecyclerview.model.User;

import java.util.ArrayList;

import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;

public class RecyclerViewAdapter extends RecyclerView.Adapter {

    ArrayList  list;
    public RecyclerViewAdapter(ArrayList list) {
        this.list = list;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        ItemLayoutBinding binding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),
                R.layout.item_layout
                ,parent,
                false);
        return new MyViewHolder(binding);
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        User user = list.get(position);
        MyViewHolder viewHolder = (MyViewHolder)holder;
        viewHolder.itemBinding.setViewModel(user);
    }

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

    class MyViewHolder extends RecyclerView.ViewHolder{
        ItemLayoutBinding itemBinding;
        public MyViewHolder(@NonNull ItemLayoutBinding itemView) {
            super(itemView.getRoot());
            itemBinding = itemView;
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340511.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号