Bạn có thể bắt đầu với một Bean để chứa và tạo mô hình thông tin cũng như giúp dễ triển khai hơn.
public class DataBean{
protected int id;
protected String name;
protected String card;
protected String code;
//Setter, Getters and constructor
...
}
Với DataBean được tạo, bạn có thể thay đổi kiểu trả về của các phương thức thành DataBean hoặc Danh sách và điền vào bên trong mỗi phương thức thay vì trả về một Chuỗi có tất cả các trường.
public DataBean getData(String name){
...
DataBean bean = null;
if (cursor.moveToFirst()) {
int index = cursor.getColumnIndex(DataBaseHelper.UID);
int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
int id = cursor.getInt(index);
String personName = cursor.getString(index2);
String card = cursor.getString(index3);
String code = cursor.getString(index4);
bean = new DataBean(id, name, card, code);
}
return bean;
}
public List<DataBean> getAllData() {
List<DataBean> list = new ArrayList<>();
...
while (cursor.moveToNext()) {
int index = cursor.getColumnIndex(DataBaseHelper.UID);
int index2 = cursor.getColumnIndex(DataBaseHelper.NAME);
int index3 = cursor.getColumnIndex(DataBaseHelper.CARD);
int index4 = cursor.getColumnIndex(DataBaseHelper.CODE);
int cid = cursor.getInt(index);
String name = cursor.getString(index2);
String card = cursor.getString(index3);
String code = cursor.getString(index4);
DataBean bean = new DataBean(cid, name, card, code);
list.add(bean);
}
return list;
}
Bây giờ khi bạn gọi các phương thức của mình, bạn có (các) đối tượng DataBean, bây giờ bạn cần ghi Bộ điều hợp của mình để hiển thị thông tin trong RecyclerView.
Trước tiên, cần liên kết và thiết lập RecyclerView trong Hoạt động của bạn.
mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setAdapter(new DataBeanAdapter(dbAdapter.getAllData(), R.layout.item));
Sau khi bạn cần tạo DataBeanAdapter và ViewHolder.
public class DataBeanAdapter extends RecyclerView.Adapter<DataBeanAdapter.ViewHolder>{
private List<DataBean> items;
private int itemLayout;
public DataBeanAdapter(List<DataBean> items, int itemLayout){
this.items = items;
this.itemLayout = itemLayout;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(itemLayout, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
DataBean item = items.get(position);
holder.name.setText(item.getName());
holder.card.setText(item.getCard());
//All the thing you gonna show in the item
}
@Override
public int getItemCount() {
return items.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView name;
public TextView card;
public ViewHolder(View itemView) {
super(itemView);
name = (TextView) itemView.findViewById(R.id.name);
card = (TextView) itemView.findViewById(R.id.card);
}
}
}
Id, bố cục và các thuộc tính của ViewHolder tùy thuộc vào người bạn sẽ hiển thị cho mỗi mục trong RecyclerView.