MainActivity
package com.lixinyang.myrecyclerview; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.Menu; import android.view.MenuItem; import android.view.View; import com.lixinyang.myrecyclerview.Adapter.MyAdapter; import com.lixinyang.myrecyclerview.Bean.User; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private int[] arr = new int[]{ R.drawable.aaaa, R.drawable.abc, R.drawable.b, R.drawable.c }; private RecyclerView rv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv = (RecyclerView) findViewById(R.id.rv); ArrayList<User> list = new ArrayList<User>(); for (int i=0;i<100;i++){ String name = "李新阳"+i; int img = arr[i%arr.length]; User user = new User(name,img); list.add(user); } //布局管理器控制你应该用什么形式展示出来 rv.setLayoutManager(new LinearLayoutManager(MainActivity.this)); //设置动画 rv.setItemAnimator(new DefaultItemAnimator()); final MyAdapter adapter = new MyAdapter(MainActivity.this,list); rv.setAdapter(adapter); adapter.aa(new MyAdapter.MyItemChecked(){ @Override public void itemClick(View view, final int Position) { AlertDialog.Builder buider = new AlertDialog.Builder(MainActivity.this); buider.setTitle("请选择操作"); buider.setPositiveButton("删除", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { adapter.removeUser(Position); } }); buider.setNegativeButton("添加", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { User user = new User("哈哈",R.drawable.ic_launcher_background); adapter.addUser(user,Position); } }); buider.show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.item,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()){ case R.id.one: rv.setLayoutManager(new LinearLayoutManager(MainActivity.this)); break; case R.id.two: rv.setLayoutManager(new GridLayoutManager(MainActivity.this,2)); break; case R.id.three: rv.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL)); break; } return super.onOptionsItemSelected(item); } }Adapter
package com.lixinyang.myrecyclerview.Adapter; import android.content.Context; 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 com.lixinyang.myrecyclerview.Bean.User; import com.lixinyang.myrecyclerview.R; import java.util.ArrayList; /** * author:Created by WangZhiQiang on 2017/12/29. */ public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private Context context; private ArrayList<User> list; private MyItemChecked myItemChecked; //实现构造方法 public MyAdapter(Context context, ArrayList<User> list) { this.context = context; this.list = list; } //创建ViewHolder的时候 //实例化ViewHolder @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //获取到你的条目布局 View view = LayoutInflater.from(context).inflate(R.layout.item, null); //实例化ViewHolder 将布局传入 MyViewHolder myViewHolder = new MyViewHolder(view); return myViewHolder; } //当你绑定ViewHolder的时候 //给控件设置数据 @Override public void onBindViewHolder(final MyViewHolder holder, final int position) { holder.getTextView().setText(list.get(position).getString()); holder.getImageView().setImageResource(list.get(position).getImage()); if(myItemChecked!=null){ holder.itemView.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) {int layoutPosition = holder.getLayoutPosition(); myItemChecked.itemClick(holder.imageView,layoutPosition);} }); } } @Override public int getItemCount() { return list.size(); } public interface MyItemChecked{ void itemClick(View view,int Position); } public void aa(MyItemChecked myItemChecked){ this.myItemChecked = myItemChecked; } public void addUser(User user,int position){ list.add(position,user); notifyItemInserted(position); } public void removeUser(int position){ list.remove(position); notifyItemRemoved(position); } class MyViewHolder extends RecyclerView.ViewHolder{ private final ImageView imageView; private final TextView textView; public MyViewHolder(View itemView) { super(itemView); this.imageView = itemView.findViewById(R.id.iv); this.textView = itemView.findViewById(R.id.tv); } public ImageView getImageView() { return imageView; } public TextView getTextView() { return textView; } }}