Я считаю, что следующее может быть решением (отмечая, что оно обслуживает несколько слов (строк), которые следует игнорировать (пропустить вставку))
При этом используется метод, а именно ifHaystackContainsNeedle
, который будет искать ArrayList (стог сена) в другом ArrayList (игле) (таким образом, обслуживая несколько строк, которые следует игнорировать). Этот метод возвращает true, если какая-либо из игл найдена в стоге сена. Так что, если это возвращает true, вы можете просто продолжить цикл for, пропуская
public void HistoryADD(ArrayList<String> full, String owner,ArrayList<String> ignore){
int size = full.size();
SQLiteDatabase db = getWritableDatabase();
try{
for (int i = 0; i < size ; i++){
//<<<<<<<<<< START OF ADDED TEST
if (ifHaystackContainsNeedle,owner,ignore) {
Log.d("Skipped ","Owner " + get(i) + " was skipped.");
continue;
}
//<<<<<<<<<< END OF ADDED TEST
ContentValues cv = new ContentValues();
cv.put(FULL, full.get(i));
cv.put(OWNER, owner);
Log.d("Added ",""+ cv);
db.insertOrThrow(TABLE_NAME, null, cv);
}
db.close();
}catch (Exception e){
System.out.println("Could not added");
}}
//<<<<<<<<<< NEW METHOD
private boolean ifHaystackContainsNeedle(ArrayList<String> haystack, ArrayList<String> needle) {
for (String s: haystack) {
for (String s2: needle) {
if (s.contains(s2)) {
return true;
}
}
}
return false;
}
- Примечание это принципиальный код, он был полностью протестирован и поэтому может содержать некоторые ошибки.