设为首页 加入收藏

TOP

Android Studio教程11-RecycleView的使用(二)
2019-09-01 23:25:48 】 浏览:73
Tags:Android Studio 教程 11-RecycleView 使用
recycle); starBT = (Button)findViewById(R.id.staggeredLayout_recycle); // RecyclerView的三部曲 01: 获取RecyclerView对象 mRecyclerView = (RecyclerView)findViewById(R.id.my_recycler_view); initData(); linearBT.setOnClickListener(new ButtonClicked()); gridBT.setOnClickListener(new ButtonClicked()); starBT.setOnClickListener(new ButtonClicked()); // // 添加水平分割线 // mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); } private void initData() { list = new ArrayList<>(); for (int i=0;i<20;i++){ list.add("Item" + i); } } class ButtonClicked implements View.OnClickListener { @Override public void onClick(View v) { switch (v.getId()){ case R.id.linearLayout_recycle: mLayoutManager = new LinearLayoutManager(getApplicationContext()); break; case R.id.grid_recycle: mLayoutManager = new GridLayoutManager(getApplicationContext(),4); break; case R.id.staggeredLayout_recycle: //如果传入 StaggeredGridLayoutManager.VERTICAL则该布局支持纵向滑动,那么前面的 4 则指的是 4列。 //如果传入 StaggeredGridLayoutManager.HORIZONTAL,则该布局支持横向滑动,那么前面的4 则指的是 4行 mLayoutManager = new StaggeredGridLayoutManager(4,StaggeredGridLayoutManager.VERTICAL); break; default: mLayoutManager = new LinearLayoutManager(getApplicationContext()); break; } //RecyclerView的三部曲 02:设置布局管理器 mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.addItemDecoration(new DividerItemDecoration(getApplicationContext(),DividerItemDecoration.VERTICAL)); // RecyclerView的三部曲 03: 添加适配器,适配器需要重写 mMyAdapter = new RecycleAdapter(list, getApplicationContext()); mRecyclerView.setAdapter(mMyAdapter); //设置Item增加、移除动画 mRecyclerView.setItemAnimator(new DefaultItemAnimator()); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.add: mMyAdapter.addData(1); break; case R.id.delete: mMyAdapter.removeData(1); break; } return true; } }

1.4. 重写定义Adapter

RecycleAdapter


package com.haoch95.fristapp;

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

import java.util.List;
import java.util.Random;

public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.MyViewHolder> {

    private List<String> mList;
    private Context context;

    public RecycleAdapter(List<String> list, Context context){
        this.mList = list;
        this.context = context;
    }

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


    public class MyViewHolder extends RecyclerView.ViewHolder {

        public TextView mView;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            mView = itemView.findViewById(R.id.text_view);
        }
    }

    //创建ViewHolder
    //onCreateViewHolder方法创建一个viewHolder,viewholder可以理解为一条数据的展示布局,这里我们自定义类LinearViewHolder创建一个只有TextView的item
    //这里我们需要创建每条布局使用的layout:recycle_item
    @NonNull
    @Override
    public MyViewHolder onCreateViewH
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇从APP跳转到微信指定联系人聊天页.. 下一篇环境状态界面

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目