RecyclerView使用,RecyclerView使用,增加一个item,删除一个item,更新数据,item点击事件
2016-09-29 08:52
691 查看
build.gradle
main_activity.xml
item.xml
MainAcitvity
传送门
compile 'com.android.support:appcompat-v7:24.2.0' compile 'com.android.support:recyclerview-v7:24.2.0'
main_activity.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <Button android:id="@+id/bt111" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="流布局" /> <Button android:id="@+id/bt112" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="线性布局" /> <Button android:id="@+id/bt113" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="添加一个Item" android:textAllCaps="false" /> <Button android:id="@+id/bt114" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="删除一个Item" android:textAllCaps="false" /> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/srl" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <android.support.v7.widget.RecyclerView android:id="@+id/rv111" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout> </LinearLayout>
item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是but" android:layout_margin="5dp" android:id="@+id/but3"/> </LinearLayout>
MainAcitvity
package com.baozilichao.recyclerviewuse; import android.app.Activity; import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.Button; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class MainActivity extends Activity { RecyclerView rv1; List<String> list1, list2; Button bt1, bt2, bt3, bt4; SwipeRefreshLayout srl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); initDate(); initView(); } private void initView() { srl = (SwipeRefreshLayout) findViewById(R.id.srl); rv1 = (RecyclerView) findViewById(R.id.rv111); bt1 = (Button) findViewById(R.id.bt111); bt2 = (Button) findViewById(R.id.bt112); bt3 = (Button) findViewById(R.id.bt113); bt4 = (Button) findViewById(R.id.bt114); final MyAdpater adapter = new MyAdpater(list1); //瀑布流 bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { rv1.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL)); } }); //线性布局 bt2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { rv1.setLayoutManager(new LinearLayoutManager(MainActivity.this)); } }); //增加一个item bt3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (list1.size() > 0) { list1.add("我是加的"); adapter.notifyItemInserted(list1.size());//更新adapter } } }); //删除一个item bt4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (list1.size() > 1) { list1.remove(0); adapter.notifyItemRemoved(list1.size());//移除更新 } } }); // 刷新 srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { if (list1.size() > 0) { list1.add("我是刷新的"); list1.addAll(list2); adapter.notifyItemInserted(list1.size()); srl.setRefreshing(false);//停止刷新 } } }); //item点击事件 rv1.setAdapter(adapter); adapter.setOnclickible(new MainActivity.Onclickible() { @Override public void ItemClick(int pos) { adapter.list1.add(list1.size() + ""); adapter.notifyItemInserted(list1.size()); // adapter.addData(list1.size()+"", list1.size()); Toast.makeText(MainActivity.this, "" + pos, Toast.LENGTH_SHORT).show(); } }); } private void initDate() { list1 = new ArrayList<>(); for (int i = 0; i < 12; i++) { list1.add("item" + i); } list2 = new ArrayList<>(); for (int i = 0; i < 5; i++) { list2.add("item" + i); } } class MyAdpater extends RecyclerView.Adapter<MyAdpater.MyViewHolder> { private List<String> list1; private MainActivity.Onclickible onclickible; public MyAdpater(List<String> list1) { this.list1 = list1; } public void setOnclickible(MainActivity.Onclickible onclickible) { this.onclickible = onclickible; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(MainActivity.this, R.layout.item, null); MyViewHolder holder = new MyViewHolder(view); return holder; } @Override public int getItemCount() { return list1.size(); } @Override public void onBindViewHolder(MyViewHolder holder, final int position) { MyViewHolder mholder = holder; mholder.tv3.setText(list1.get(position)); mholder.tv3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onclickible.ItemClick(position); } }); } class MyViewHolder extends RecyclerView.ViewHolder { Button tv3; public MyViewHolder(View itemView) { super(itemView); tv3 = (Button) itemView.findViewById(R.id.but3); } } } public interface Onclickible { void ItemClick(int pos); } }
传送门
相关文章推荐
- RecyclerView的Item点击事件,增加删除Item瀑布流动画效果,长按拖动Item,RecyclerView复杂布局、实现新闻频道选择器
- RecyclerView 初次体验,实现增加删除条目及item长按和点击事件
- RecyclerView展示固定数据、上拉加载更多、下拉刷新、点击事件、长按点击事件、删除条目、刷新条目、添加条目、多条目加载
- 使用接口实现RecyclerView中的item点击事件
- Android RecyclerView使用(二) -给Item添加点击事件
- 精通RecyclerView:打造ListView、GridView、瀑布流;学会添加分割线、 添加删除动画 、Item点击事件
- Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现
- RecyclerView使用(二)多种Item布局、添加点击事件
- Android中RecyclerView使用,RecyclerView-Item点击事件设置
- 在使用Imagepicker时候,点击recyclerView的item,进入删除界面,返回结果为空的问题
- TV中RecyclerView添加item的点击事件和删除item之后获取焦点解决
- Android RecyclerView单点、批量数据元素项目item的增加、删除和移动
- Android RecyclerView单点、批量数据元素项目item的增加、删除和移动
- RecyclerView基础-数据适配、自定义分割线、上拉加载、下拉加载、item点击事件
- Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现
- 为RecyclerView添加item的点击事件
- 为RecyclerView添加item的点击事件
- Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新
- 一个能一句话添加header和Footer,并且能滑动删除和交换Item的RecyclerView
- RecyclerView 使用总结(三):点击事件、GridView等、瀑布流、动态增删