我在我的一个主要活动中有一个getQuery,我从一个解析类中检索所有行。在该查询中,我执行parseObject.getObjectId()并将其分配给属于对象的字符串变量。
在一个单独的活动中,我有一个删除按钮,我再次执行getQeury以通过objectid找到parseObject,这样我就可以删除该行。但是,我注意到此删除失败,因为在第二个活动中,属于对象的objectID字符串变量不是与parseObject关联的真实objectID。相反,字符串变量返回当前时间的时间戳。
这是我到目前为止的代码:
//main activity where I get and set
ParseQuery<ParseObject> query = ParseQuery.getQuery("myParseClass");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException findCall) {
if (findCall == null) {
for (ParseObject p : list) {
if(p.getObjectId() != null) mParseObjectId = p.getObjectId();
mItems.add(new superCoolClass(mParseObjectId));
}
}
else{
findCall.printStackTrace();
}
}
});
和
//second activity where i have delete button to delete parseObject from row
mDeleteItemButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isNetworkConnected()) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("myParseClass");
query.getInBackground(superCoolClass.getParseObjectId, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject parseObject, ParseException e) {
if (e == null) {
parseObject.deleteInBackground(new DeleteCallback() {
@Override
public void done(ParseException e) {
if (e == null) Toast.makeText(getActivity(), "Item deleted from database", Toast.LENGTH_LONG).show();
else e.printStackTrace();
}
});
} else {
// something went wrong
e.printStackTrace();
Log.i("hereeeeeee1 === ", superCoolClass.getParseObjectId());
}
}
});
} else {
//no interenet
}
}
});
在第二行中,当我打印parseObjectId时,我没有获得与Parse相关联的Id,而是获得一个表示当前时间的时间戳(每次运行代码时它都会更改),从而导致Parse Exception为“no”找到的结果“