RecyclerView使用步骤:
//1.设置LayoutManager
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
//2.设置Adapter
List<Crime> crimes = CrimeLab.getInstance().getCrimes();
recyclerView.setAdapter(new CrimeAdapter(getActivity(),crimes));
//3.在ViewHolder中设置点击事件
Adapter代码
public class CrimeAdapter extends RecyclerView.Adapter<CrimeViewHolder> {
private Context mContext;
private List<Crime> mCrimes;
public CrimeAdapter(Context context, List<Crime> crimes) {
mContext = context;
mCrimes = crimes;
}
@NonNull
@Override
public CrimeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.crime_item,parent,false);
return new CrimeViewHolder(mContext,view);
}
@Override
public void onBindViewHolder(@NonNull CrimeViewHolder holder, int position) {
Crime crime = mCrimes.get(position);
holder.title.setText(crime.getTitle());
holder.resolved.setChecked(crime.isSolved());
}
@Override
public int getItemCount() {
return mCrimes.size();
}
}
ViewHolder代码
public class CrimeViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
public TextView title;
public CheckBox resolved;
private Context mContext;
public CrimeViewHolder(Context context,@NonNull View view) {
super(view);
mContext = context;
title = view.findViewById(R.id.title_textview);
resolved = view.findViewById(R.id.resolved_checkbox);
view.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(mContext,title.getText(),Toast.LENGTH_SHORT).show();
System.out.println(title.getText());
}
}
Model类
public class Crime {
private String title;
private boolean solved;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public boolean isSolved() {
return solved;
}
public void setSolved(boolean solved) {
this.solved = solved;
}
}
public class CrimeLab {
//单例的作用:
// 1.生命周期长,只有应用被移除,单例对象才会被回收,所以可以用来保存数据
// 2.可以保证数据的唯一性
private static CrimeLab sInstance;
private List<Crime> mCrimes = new ArrayList<>();
public static CrimeLab getInstance(){
if(sInstance == null) {
sInstance = new CrimeLab();
}
return sInstance;
}
private CrimeLab(){
mCrimes.clear();
for(int i = 0;i < 10;i++) {
Crime crime = new Crime();
crime.setTitle("Crime #" + (i+1));
crime.setSolved(i % 2 == 0);
mCrimes.add(crime);
}
}
public List<Crime> getCrimes() {
return mCrimes;
}
}
RecyclerView使用步骤
于 2023-07-14 11:15:52 首次发布
该文章介绍了如何在Android中使用RecyclerView,包括设置LayoutManager、创建Adapter和ViewHolder,以及实现点击事件。示例展示了Crime模型类的使用,并通过CrimeLab单例管理数据。
摘要由CSDN通过智能技术生成