例:
RecyclerView列表,点击删除
加权限:
//recyclerview依赖 implementation 'com.android.support:recyclerview-v7:26.1.0'
MainActivity 主方法:
public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; ArrayList<String> list = new ArrayList<String>(); private Myadapter myadapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for (int i = 0; i < 50; i++) { list.add("倒霉熊"+i); } recyclerView = findViewById(R.id.recy); recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this, OrientationHelper.VERTICAL,false)); myadapter = new Myadapter(list,MainActivity.this); recyclerView.setAdapter(myadapter); myadapter.SetOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position) { list.remove(position) ; myadapter.notifyDataSetChanged(); Toast.makeText(MainActivity.this, list.get(position).toString(), Toast.LENGTH_SHORT).show(); } }); } }
activity_main
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recy" /> </RelativeLayout>
User
public class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Myadapter 适配器类:
public class Myadapter extends RecyclerView.Adapter { ArrayList<String> list; Context context; private OnItemClickListener onItemClickListener; public Myadapter(ArrayList<String> list, Context context) { this.list = list; this.context = context; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LinearLayout.inflate(context, R.layout.layout, null); MyHolder myHolder = new MyHolder(view); return myHolder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { MyHolder myHolder = (MyHolder) holder; myHolder.xiaohenan.setText(list.get(position).toString()); myHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickListener.onItemClick(position); } }); } @Override public int getItemCount() { return list.size(); } class MyHolder extends RecyclerView.ViewHolder{ public TextView xiaohenan; public MyHolder(View itemView) { super(itemView); xiaohenan = itemView.findViewById(R.id.xiaohenan); } } public void SetOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener=onItemClickListener; } }
layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/xiaohenan" android:textSize="30dp" android:text="30dp" /> </LinearLayout>
OnItemClickListener 接口:
public interface OnItemClickListener { void onItemClick(int position); }