我试图在 ArrayList 中保存一组 ID,然后我想将当前值与所述 Arraylist 的内容进行比较,但它似乎对我不起作用。
我的两种方法都不起作用,在代码片段c.getString(0)
中是从 SQLite 数据库中提取 Numeric ID 列,并且allProgramIds
包含相同的 ID。
方法1.直接比较(这不匹配,只是忽略)
for(int i=0;i<allProgramIds.size();i++) {
Log.w(TAG, "Looping - looking for:" + c.getString(0) + ", Holding:"+allProgramIds);
if( allProgramIds.get(i) == c.getString(0)) {
exist=true;
Log.w(TAG, "Found one:" + c.getString(0));
break;
}
}
方法 2. 在比较之前强制转换为 Int(这会导致崩溃)
for(int i=0;i<allProgramIds.size();i++) {
Log.w(TAG, "Looping - looking for:" + c.getString(0) + ", Holding:"+allProgramIds);
if( Integer.toString((Integer) allProgramIds.get(i)) == c.getString(0)) {
exist=true;
Log.w(TAG, "Found one:" + c.getString(0));
break;
}
}
这是一个日志输出
Log.w(TAG, "Looping - looking for:" + c.getString(0) + ", Holding:"+allProgramIds);
04-04 10:43:42.805: W/MainProgram(2045): Looping - looking for:73, Holding:[68, 69, 70, 71, 72, 73, 74, 75, 76, 68, 69, 70, 71, 72]
谢谢