Я сделал findInBackground
запрос для получения списка объектов. После этого я создаю мои собственные объекты из результатов я получил:Как удалить ParseObject, если у меня есть только objectID?
query.findInBackground(new FindCallback<ParseObject>() {
public void done(final List<ParseObject> hangOutList, ParseException e) {
if (e == null) {
for (int i = 0; i < hangOutList.size(); i++) {
String objectID= hangOutList.get(i).getObjectId();
String city = hangOutList.get(i).getString("City");
String name = hangOutList.get(i).getString("Name");
String createdBy =
hangOutList.get(i).getString("CreatedBy");
HangOut ho=new HangOut(objectID, name, city, createdBy);
hangOuts.add(ho);
}
Теперь, когда я нажимаю на одном из них, я хочу, чтобы иметь возможность удалить его. В документации они говорят, что делают это: myObject.deleteInBackground();
Однако у меня нет ParseObject
, поэтому я не могу этого сделать. Прямо сейчас я пытался сделать что-то вроде этого:
private void deleteHangout() {
ParseObject po=new ParseObject("HangOut");
po.setObjectId(hangOut.getObjectID());
po.deleteInBackground();
}
Это не работает. Есть ли способ создания объекта Parse по ID. Или любая другая идея?
Я получаю ошибку после выполнения deleteHangout
:
01-18 13:41:07.659 1716-1716/com.parse.starter E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Attempted to change an objectId to one that's
already known to the Offline Store.
at com.parse.OfflineStore.updateObjectId(OfflineStore.java:598)
at com.parse.ParseObject.setObjectIdInternal(ParseObject.java:1106)
at com.parse.ParseObject.setObjectId(ParseObject.java:1094)
at com.parse.starter.HangOuts.
HangOutDetail.deleteHangout(HangOutDetail.java:61)
at com.parse.starter.HangOuts.
HangOutDetail.access$000(HangOutDetail.java:16)
at com.parse.starter.HangOuts.
HangOutDetail$1.onClick(HangOutDetail.java:54)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.
ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Примечание: Я хочу, чтобы избежать ненужных вызовов на сервер.
Вы можете просто инициализировать новый объект синтаксического анализа с этим идентификатором и применить к нему удаление – Kiloreux
Разве это не то, что я сделал? Последний раздел кода моего вопроса? Или? Не стесняйтесь ответить на вопрос на примере. Спасибо. –
Вы пытались запустить обратный вызов delete? – Kiloreux