Есть код:
private void soapScaner(SoapObject object){
for(int i = 0; i<object.getPropertyCount();i++){
if(object.getProperty(i) instanceof SoapObject) {
String NomCode = ((SoapObject)object.getProperty(i)).getProperty("Code").toString();
Log.d("NomName",((SoapObject)object.getProperty(i)).getProperty("NomName").toString());
db = dbConnector.getWritableDatabase();
Cursor cursor = db.query(BasicSettings.Nom_DB_Table,new String[]{dbConnector.CODE},dbConnector.CODE+"=?",new String[]{NomCode},null,null,null);
//Если товар найден то перезаписываем его текущие поля, а иначе добавляем новую строку в базу данных
if(cursor != null){
if(cursor.moveToFirst()) {
Log.d("DBINFORM", cursor.getString(cursor.getColumnIndex(dbConnector.CODE)));
}
}else {
ContentValues cv = new ContentValues();
cv.put(dbConnector.CODE,((SoapObject)object.getProperty(i)).getProperty("Code").toString());
cv.put(dbConnector.NOM_NAME,((SoapObject)object.getProperty(i)).getProperty("NomName").toString());
cv.put(dbConnector.PARENT,((SoapObject)object.getProperty(i)).getProperty("Parent").toString());
cv.put(dbConnector.IS_GROUP,((SoapObject)object.getProperty(i)).getProperty("IsGroup").toString());
cv.put(dbConnector.EDO,((SoapObject)object.getProperty(i)).getProperty("EDO").toString());
cv.put(dbConnector.KOEF_EDO,((SoapObject)object.getProperty(i)).getProperty("KoefEDO").toString());
cv.put(dbConnector.EXO,((SoapObject)object.getProperty(i)).getProperty("EXO").toString());
cv.put(dbConnector.KOEF_EXO,((SoapObject)object.getProperty(i)).getProperty("KoefEXO").toString());
cv.put(dbConnector.PRICE,((SoapObject)object.getProperty(i)).getProperty("Price").toString());
cv.put(dbConnector.REMAINDER,((SoapObject)object.getProperty(i)).getProperty("Remainder").toString());
cv.put(dbConnector.REMAINDER_SEC,((SoapObject)object.getProperty(i)).getProperty("RemainderSec").toString());
db.insert(BasicSettings.Nom_DB_Table,null,cv);
}
db.close();
cursor.close();
publishProgress(i,object.getPropertyCount());
}
}
}
Сейчас получается то, что при вызове метода cursor.moveToFirst()
он возвращает false
, я так понимаю это значит что строка в таблице не была найдена?
Но почему тогда сам курсор не содержит null
? Я правильно понимаю, что если в переменной cursor
не null
, то это значит что результат выборки это одна или несколько строк, почему тогда при попытке перейти на первую строку возвращается false
от метода cursor.moveToFirst()
?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите, пожалуйста, необходим ли вызов Bitmaprecycle() в таком случае:
Я пытаюсь добавить SearchView в приложение
Подскажите как узнать что IMEI существует? У меня в приложении IMEI присваивается переменной