Android 如何检查列表中是否存在字符串
这是我的密码:Android 如何检查列表中是否存在字符串,android,sqlite,android-listview,contacts,Android,Sqlite,Android Listview,Contacts,这是我的密码: public List<Contact> getAllContacts() { List<Contact> contactList = new ArrayList<Contact>(); String selectQuery = "SELECT * FROM " + TABLE_CONTACTS; SQLiteDatabase db = this.getWritableDatabase(); Cursor c
public List<Contact> getAllContacts() {
List<Contact> contactList = new ArrayList<Contact>();
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0)));
contact.setName(cursor.getString(1));
contactList.add(contact);
} while (cursor.moveToNext());
}
return contactList;
}
公共列表getAllContacts(){
List contactList=new ArrayList();
String selectQuery=“SELECT*FROM”+表格\联系人;
SQLiteDatabase db=this.getWritableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
做{
触点=新触点();
setID(Integer.parseInt(cursor.getString(0));
contact.setName(cursor.getString(1));
联系人列表。添加(联系人);
}while(cursor.moveToNext());
}
返回联系人列表;
}
我想要的是将所有联系人与一个字符串进行比较,如果不匹配,则将该联系人添加到我的数据库中。这里的问题是,如果我添加下面的代码部分,它会检查单个字符串是否匹配,如果不匹配,则会得到add。我可以看出代码是错误的,但我无法修复它
List<Contact> contacts = db.getAllContacts();
for (Contact cn : contacts) {
if (!(cn.getName().contains(substring))) {
// Inserting Contacts
db.addContact(new Contact(record.get("9"), getDateTime()));
}
}
List contacts=db.getAllContacts();
用于(联系人cn:联系人){
如果(!(cn.getName()包含(子字符串))){
//插入联系人
addContact(新联系人(record.get(“9”),getDateTime());
}
}
列出联系人=db.getAllContacts();
布尔值shouldAddToDB=true;
用于(联系人cn:联系人){
if((cn.getName().contains(substring))){
shouldAddToDB=false;
打破
}
}
if(shouldAddToDB){
//插入联系人
addContact(新联系人(record.get(“9”),getDateTime());
}
edited:List contacts=db.getAllContacts()代码>在for循环之外。很抱歉,我在发布代码时犯了错误,但在我的代码中是这样的:pand有什么问题cn.getName().contains(substring)
未按预期工作?问题是,如果没有一个联系人与列表匹配,我希望将其添加到DB中,但现在即使只有一个联系人与它获得的列表不匹配,请参见下面的答案
List<Contact> contacts = db.getAllContacts();
boolean shouldAddToDB = true;
for (Contact cn : contacts) {
if ((cn.getName().contains(substring))) {
shouldAddToDB = false;
break;
}
}
if (shouldAddToDB) {
// Inserting Contacts
db.addContact(new Contact(record.get("9"), getDateTime()));
}