数据是一个携带的数组: 观察1,观察2,观察3,观察4,观察5
stringarray2一个数组,可能包含上述任何一个,例如: 观察1,观察4
我正在尝试将项目添加到countryList中,如果它们出现在两个数组中,则将它们设置为true,否则设置为false。
我需要帮助设置嵌套循环。
我目前有以下设置非常接近,但这只会将数组2中的最后一项添加为true(例如,observation4) 你能看到我出错的地方吗?
while (data.moveToNext()){
if (data.moveToFirst()){
do{
observation = data.getString(1);
if (editing.equals("yes")) {
stringarray2
Boolean test = false;
for (String name:stringarray2)
{
if (observation.equals(name)){
test = true;
}else{
test = false;
}
}
Country country = new Country(null,observation,test);
countryList.add(country);
}else{
Country country = new Country(null,observation,false);
countryList.add(country);
}
}while(data.moveToNext());
}
}
答案 0 :(得分:1)
试试这个
if (data.moveToFirst())
{
do
{
observation = data.getString(1);
if (editing.equals("yes"))
{
stringarray2 //random word here?
Boolean test = false;
for (String name:stringarray2)
{
if (observation.equals(name))
{
test = true;
break;
}
}
Country country = new Country(null,observation,test);
countryList.add(country);
}
else
{
Country country = new Country(null,observation,false);
countryList.add(country);
}
}
while (data.moveToNext())
}
答案 1 :(得分:0)
我认为你的问题在于你的时间和条件。
使用第一个循环
while (data.moveToNext())
moveToNext()已经检查如果有下一个 移动,你就不应该转移到首先,再次开始使用值
你需要像
这样的东西try {
while (data.moveToNext()) {
observation = data.getString(1);
if (editing.equals("yes")) {
stringarray2
Boolean test = false;
for (String name:stringarray2)
{
if (observation.equals(name)){
test = true;
}else{
test = false;
}
}
Country country = new Country(null,observation,test);
countryList.add(country);
}else{
Country country = new Country(null,observation,false);
countryList.add(country);
}
}
} finally {
data.close();
}
假设你的内在逻辑正常。
P.S我添加了try finally
,因为您需要在完成查询结果后关闭光标。