我有,我POST请求到服务器,如果数据库是空的,我添加项目到数据库中,如果在数据库中的一些项目,只是使它们在适配器的方法。没有显示物品recyclerView
private void getContacts() {
database = SugarRecord.listAll(ContactORM.class);
if(database.isEmpty()) {
showProgressDialog();
FactoryAPI.getContacts().getContacts(user.getToken()).enqueue(new Callback<ContactsResponse>() {
@Override
public void onResponse(Call<ContactsResponse> call, Response<ContactsResponse> response) {
if (response.isSuccessful()) {
contactList = response.body().getContactsList();
if (database.isEmpty()) {
for (int i = 0; i < contactList.size(); i++) {
ContactORM contact = new ContactORM();
contact.setId(contactList.get(i).getId());
contact.setName(contactList.get(i).getName());
contact.setLastname(contactList.get(i).getLastname());
contact.setEmail(contactList.get(i).getEmail());
contact.setPhoto(contactList.get(i).getPhoto());
contact.save();
database.add(contact);
}
}
progressDialog.dismiss();
setRecyclerView();
}
}
@Override
public void onFailure(Call<ContactsResponse> call, Throwable t) {
Toast.makeText(getContext(), "failure", Toast.LENGTH_SHORT).show();
}
});
}
//set recycler view
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
mAdapter = new ContactsAdapter(getContext(), database);
recyclerView.setAdapter(mAdapter);
}
setRecyclerView方法:
database = SugarRecord.listAll(ContactORM.class);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
mAdapter = new ContactsAdapter(getContext(), database); recyclerView.setAdapter(mAdapter);
适配器:
class ContactsAdapter extends RecyclerView.Adapter<ContactsAdapter.ViewHolder> {
List<ContactORM> database;
Context mContext;
public ContactsAdapter(Context context, List<ContactORM> contacts) {
this.mContext = context;
this.database = contacts;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int type) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_item_contact, parent, false);
return new ViewHolder(view);
}
public class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.avatar) CircleImageView avatar;
@BindView(R.id.name) TextView name;
public ViewHolder(View rowView) {
super(rowView);
ButterKnife.bind(this, rowView);
}
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
ContactORM contact = database.get(position);
if ((contact.getLastname() != null)) {
holder.name.setText(contact.getName() + " " + contact.getLastname());
} else {
holder.name.setText(contact.getName());
}
//if photo is not null, load image
if (!(contact.getPhoto() == null)) {
Picasso.with(mContext).load(contact.getPhoto()).resize(100, 100).into(holder.avatar);
}
}
@Override
public int getItemCount() {
return database.size();
}
}
如果我将项目添加到数据库中,项目将显示 - 这是好的,但如果数据库是不是空的,它显示了什么都没有,我如何显示在我的适配器中的项目?
这个代码不正确,修复第一... – BruceStackOverFlow
@BruceStackOverFlow:不要简单地说,不正确或一些东西 说,一些使用全这样他就可以解决问题。 ... 如果不正确,至少识别并告诉他。 –
@兰姆好。我打算调用一个不存在的函数 setRecyclerView。并且很难理解什么是错误的... – BruceStackOverFlow