android - 将 arraylist<String> 值插入到 android 中的 sqlite

标签 android sqlite for-loop arraylist android-sqlite

我在 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/

相关文章:

android - 如何以编程方式获取 Android 设备的序列号

android - 捕获 toast 事件(来自任何应用程序)并获取 toast 消息

Android:在 Adapter 的 onBindViewHolder 中将 ImageView 动态添加到 Linearlayout

ios - iOS 7 中查询未给出结果

sqlite - 将sqlite3 db推送到heroku时出现问题:lib/taps/schema.rb:30:在sqlite_config中:未定义的方法[[]]为nil:NilClass(NoMethodError)

android - 在 Android 开发人员中找不到完整 Android 示例的链接

java - 如何在Android应用程序的命令行中与sqlite3交互?

c++ - while 循环不会在 bool 条件下停止

ios - AS3 - 使用循环动态更改 Sprite 属性不起作用

Java:由于方法调用,for 循环在所有迭代之前中断