我有两个按钮(添加联系人)和(清除所有联系人),每次我填写有关联系人的信息(姓名,电话,图片)时,我都会保存它们使用SharedPreference
,因此,如果我关闭该应用程序并再次将其重新打开,则应该会出现项目,但是在下面的代码中,每当我尝试添加或删除联系人时都没有反应,我应该关闭该应用程序并再次打开以使{ {1}}已更新。
MainActivity
RecylerView
添加联系人
contactAdapter = new ContactAdapter(getApplicationContext(), getExistedContactList(), new onRecyclerViewClickListener() {
@Override
public void onClick(View view, Contact contact) {
Toast.makeText(MainActivity.this, contact.getFullName(), Toast.LENGTH_SHORT).show();
}
});
recyclerView.setAdapter(contactAdapter);
删除所有联系人
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Contact contact = new Contact();
contact.setFullName(fullName.getText().toString());
contact.setPhoneNumber(phoneNumber.getText().toString());
contact.setContactProfilePictureURI(contactPictureUri.toString());
contacts.add(contact);
addToDB(fullName.getText().toString(), phoneNumber.getText().toString(), contactPictureUri.toString()); /*Add to database*/
recyclerView.setAdapter(contactAdapter);
contactAdapter.updateContactList(); /* Refresh/Update UI */
addContactDialog.dismiss(); /* dismiss Contact Dialog */
}
});
使用 private void removeAllContact() {
contacts.clear();
tinydb.clear();
contactAdapter.notifyDataSetChanged();/* Update UI */
}
SharedPreference
答案 0 :(得分:1)
在班级顶部定义联系人列表:
ArrayList<Contact> contactList = new ArrayList<>();
现在将其发送到适配器,并将适配器设置为Recyclerview
中的onCreate
仅一次。
contactList.clear();
contactList.addAll(getExistedContactList());
contactAdapter = new ContactAdapter(getApplicationContext(), contactList, new onRecyclerViewClickListener() {
@Override
public void onClick(View view, Contact contact) {
Toast.makeText(MainActivity.this, contact.getFullName(), Toast.LENGTH_SHORT).show();
}
});
recyclerView.setAdapter(contactAdapter);
现在点击添加按钮:
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Contact contact = new Contact();
contact.setFullName(fullName.getText().toString());
contact.setPhoneNumber(phoneNumber.getText().toString());
contact.setContactProfilePictureURI(contactPictureUri.toString());
contactList.add(contact);
addToDB(fullName.getText().toString(), phoneNumber.getText().toString(), contactPictureUri.toString()); /*Add to database*/
contactAdapter.notifyDataSetChanged();
addContactDialog.dismiss(); /* dismiss Contact Dialog */
}
});
Similary编写代码,用于清除Db中的联系人列表并更新UI。