我推送了一个对象来解析数据库。现在我想再将一个数据对象推送到该行但是我希望如果已经存在相同的值集,那么它不应该推送对象但是用新值刷新对象。 让我有3个字符串rollnum,name和city。如果推送相同的卷数,则解析数据中具有可用卷号的特定行将上载新值。 我试过这个:
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ParseQuery<ParseObject> query = ParseQuery
.getQuery("StudentInfo");
query.whereEqualTo("rollnum", rollnum.getText()
.toString());
query.whereEqualTo("name", name.getText()
.toString());
query.whereEqualTo("city", city.getText().toString());
query.getFirstInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject obj, ParseException e) {
if (e == null) {
Toast.makeText(getApplicationContext(), "This Information already exists..",Toast.LENGTH_LONG).show();
}
else{
obj = new ParseObject(
"StudentInfo");
obj.put("rollnum", rollnum.getText()
.toString());
obj.put("name",name.getText()
.toString());
obj.put("city", city.getText().toString());
obj.saveInBackground();
}
}
});
答案 0 :(得分:0)
如果对象不存在则返回对象中没有任何内容,错误并不表示对象不存在,所有这些都表明在尝试获取数据时出现了问题
你的done
方法也是错误的,它应该是这样的
public void done(List<ParseObject> objects, ParseException e) {
您所做的就是检查数据
if(objects != null && objects.count > 0){
// I have data here!!!
}