从 Parse Table 中删除一行
Delete a row from Parse Table
我有一个 table 叫做收藏标签。它有字段 - 标签,用户(指针 - respectiv user objectid)。用户可以在其中存储标签并与 user-objectid 一起作为用户字段中的指针,用户从收藏夹中删除标签
对于Storing/Updating:工作正常。
ParseObject favtagobject = new ParseObject("Favourite");
favtagobject.put("Tag", "#" + keyword);
favtagobject.put("User", ParseUser.getCurrentUser());
favtagobject.saveInBackground();
对于 removing/deleting 来自 table 的标签:下面的代码不起作用
ParseObject favtagobject = new ParseObject("Favourite");
favtagobject.put("Tag", "#" + keyword);
favtagobject.put("User", ParseUser.getCurrentUser());
favtagobject.deleteInBackground(new DeleteCallback() {
@Override
public void done(com.parse.ParseException arg0) {
// TODO Auto-generated method stub
System.out.println("deleted the tag succesfully");
}
});
我想从 table 中删除一行我知道要删除哪一行。请帮帮我。
基本上,当您使用 'new ParseObject("Favourite");' 时,它会构造一个新的 ParseObject。在您调用 .save() 的任何变体之前,此 parseObject 不存在于您的数据库中。因此当你这样做时
ParseObject favtagobject = new ParseObject("Favourite");
favtagobject.put("Tag", "#" + keyword);
favtagobject.put("User", ParseUser.getCurrentUser());
favtagobject.deleteInBackground(new DeleteCallback() {
@Override
public void done(com.parse.ParseException arg0) {
// TODO Auto-generated method stub
System.out.println("deleted the tag succesfully");
}
});
您所做的只是创建一个新对象,该对象在您的数据库中不存在,然后尝试将其删除?你要找的是这个
ParseQuery<ParseObject> query = ParseQuery.getQuery("Favourite");
query.whereEqualTo("Tag", "#" + keyword);
query.whereEqualTo("User", ParseUser.getCurrentUser());
query.getFirstInBackground(new FindCallBack() {
@Override
public void done(ParseObject object, com.parse.ParseException arg0) {
// TODO Auto-generated method stub
object.delete();
object.saveInBackground();
}
}););
这将首先从您的数据库中获取对象,然后从 table 中删除行并保存对对象所做的更改!
感谢 Bart de Ruijter。这也适用于我。
ParseQuery<ParseObject> query = ParseQuery.getQuery("Objects");
query.getInBackground(objectID, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
try {
object.delete();
object.saveInBackground();
Intent dashboard = new Intent(getApplicationContext(),DashboardActivity.class);
Toast.makeText(getApplicationContext(), "Deleted Successuly.", Toast.LENGTH_SHORT).show();
startActivity(dashboard);
} catch (ParseException e1) {
e1.printStackTrace();
}
}
});
我有一个 table 叫做收藏标签。它有字段 - 标签,用户(指针 - respectiv user objectid)。用户可以在其中存储标签并与 user-objectid 一起作为用户字段中的指针,用户从收藏夹中删除标签
对于Storing/Updating:工作正常。
ParseObject favtagobject = new ParseObject("Favourite");
favtagobject.put("Tag", "#" + keyword);
favtagobject.put("User", ParseUser.getCurrentUser());
favtagobject.saveInBackground();
对于 removing/deleting 来自 table 的标签:下面的代码不起作用
ParseObject favtagobject = new ParseObject("Favourite");
favtagobject.put("Tag", "#" + keyword);
favtagobject.put("User", ParseUser.getCurrentUser());
favtagobject.deleteInBackground(new DeleteCallback() {
@Override
public void done(com.parse.ParseException arg0) {
// TODO Auto-generated method stub
System.out.println("deleted the tag succesfully");
}
});
我想从 table 中删除一行我知道要删除哪一行。请帮帮我。
基本上,当您使用 'new ParseObject("Favourite");' 时,它会构造一个新的 ParseObject。在您调用 .save() 的任何变体之前,此 parseObject 不存在于您的数据库中。因此当你这样做时
ParseObject favtagobject = new ParseObject("Favourite");
favtagobject.put("Tag", "#" + keyword);
favtagobject.put("User", ParseUser.getCurrentUser());
favtagobject.deleteInBackground(new DeleteCallback() {
@Override
public void done(com.parse.ParseException arg0) {
// TODO Auto-generated method stub
System.out.println("deleted the tag succesfully");
}
});
您所做的只是创建一个新对象,该对象在您的数据库中不存在,然后尝试将其删除?你要找的是这个
ParseQuery<ParseObject> query = ParseQuery.getQuery("Favourite");
query.whereEqualTo("Tag", "#" + keyword);
query.whereEqualTo("User", ParseUser.getCurrentUser());
query.getFirstInBackground(new FindCallBack() {
@Override
public void done(ParseObject object, com.parse.ParseException arg0) {
// TODO Auto-generated method stub
object.delete();
object.saveInBackground();
}
}););
这将首先从您的数据库中获取对象,然后从 table 中删除行并保存对对象所做的更改!
感谢 Bart de Ruijter。这也适用于我。
ParseQuery<ParseObject> query = ParseQuery.getQuery("Objects");
query.getInBackground(objectID, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
try {
object.delete();
object.saveInBackground();
Intent dashboard = new Intent(getApplicationContext(),DashboardActivity.class);
Toast.makeText(getApplicationContext(), "Deleted Successuly.", Toast.LENGTH_SHORT).show();
startActivity(dashboard);
} catch (ParseException e1) {
e1.printStackTrace();
}
}
});