我在 2 个不同的 arraylist 中有来自 listview 的名称和 id,我想将 id 和名称从 arraylist 存储到字符串,然后单击按钮将它们保存到 sqlite。
以下代码的问题是,当检查了2个项目并单击按钮时,该项目插入了两次。当 id 设置为 UNIQUE 时,插入到 3 个 id 时,唯一的一个是保存在 sqlite 中,...
这是我目前尝试过的:
public void addSelected(ArrayList<String> selNames, ArrayList<String> selID) {
SQLiteDatabase db = getWritableDatabase();
try{
for (String str: selID){
for (String stl:selNames){
ContentValues cv = new ContentValues();
cv.put(KEY_ID, str);
cv.put(KEY_STATUS, stl);
db.insertOrThrow(TABLE_SELECTED, null, cv);
}
}
db.close();
}catch (Exception e){
Log.e("Problem", e + " ");
}
}
最佳答案
我认为如果你的两个数组大小相同,你应该简单地尝试这个......并且还像这样在 db.insertorThrow 中传递你的 cv
public void addSelected(ArrayList<String> selList, ArrayList<String> selID){
int size = selID.size();
SQLiteDatabase db = getWritableDatabase();
try{
for (int i = 0; i < size ; i++){
ContentValues cv = new ContentValues();
cv.put(KEY_ID, selID.get(i));
cv.put(KEY_STATUS, selList.get(i));
Log.d("Added ",""+ cv);
db.insertOrThrow(TABLE_SELECTED, null, cv);
}
db.close();
}catch (Exception e){
Log.e("Problem", e + " ");
}
关于android - 将 arraylist<String> 值插入到 android 中的 sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34708580/