解析更新和删除不工作的android
我正在使用android API,根据这一点,我完全按照指示完成了相同的工作。这是我的密码解析更新和删除不工作的android,android,database,parse-platform,Android,Database,Parse Platform,我正在使用android API,根据这一点,我完全按照指示完成了相同的工作。这是我的密码 Update.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub ParseQuery<ParseObject> query = ParseQuery
Update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ParseQuery<ParseObject> query = ParseQuery
.getQuery("GameScore");
query.whereEqualTo("playerName", user.getText().toString());
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> arg0, ParseException arg1) {
// TODO Auto-generated method stub
if (arg1 == null) {
if(arg0.size()!=0)
{
final ParseObject delo = arg0.get(0);
Toast.makeText(getApplicationContext(),
"got something : " + arg0.size() + " " + delo.getObjectId(),
Toast.LENGTH_SHORT).show();
String objid = delo.getObjectId();
ParseQuery<ParseObject> newquery = ParseQuery.getQuery("GameScore");
newquery.getInBackground(objid, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject arg0, ParseException arg1) {
// TODO Auto-generated method stub
if(arg1==null)
{
Toast.makeText(getApplicationContext(), "no error", Toast.LENGTH_SHORT).show();
String scor = score.getText().toString();
int iscore = Integer.parseInt(scor);
arg0.put("score", iscore);
Toast.makeText(getApplicationContext(), "Updated", Toast.LENGTH_SHORT).show();
arg0.saveInBackground();
}else
{
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
}
}
});
}
else{
Toast.makeText(getApplicationContext(),
"nothing to show",
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(getApplicationContext(),
"We got Crashed" + arg0.size(),
Toast.LENGTH_SHORT).show();
}
}
});
}
});
Update.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
ParseQuery=ParseQuery
.getQuery(“游戏分数”);
query.whereEqualTo(“playerName”,user.getText().toString());
findInBackground(新的FindCallback(){
@凌驾
公共作废完成(列表arg0,解析异常arg1){
//TODO自动生成的方法存根
如果(arg1==null){
如果(arg0.size()!=0)
{
最终ParseObject delo=arg0.get(0);
Toast.makeText(getApplicationContext(),
找到了:“+arg0.size()+”+delo.getObjectId(),
吐司。长度(短)。show();
字符串objid=delo.getObjectId();
ParseQuery newquery=ParseQuery.getQuery(“游戏分数”);
getInBackground(objid,newgetCallback(){
@凌驾
公共无效完成(ParseObject arg0,ParseException arg1){
//TODO自动生成的方法存根
如果(arg1==null)
{
Toast.makeText(getApplicationContext(),“无错误”,Toast.LENGTH\u SHORT.show();
字符串scor=score.getText().toString();
int iscore=Integer.parseInt(scor);
arg0.put(“分数”,iscore);
Toast.makeText(getApplicationContext(),“Updated”,Toast.LENGTH_SHORT.show();
arg0.saveInBackground();
}否则
{
Toast.makeText(getApplicationContext(),“Error”,Toast.LENGTH_SHORT.show();
}
}
});
}
否则{
Toast.makeText(getApplicationContext(),
“没什么可展示的”,
吐司。长度(短)。show();
}
}否则{
Toast.makeText(getApplicationContext(),
“我们崩溃了”+arg0.size(),
吐司。长度(短)。show();
}
}
});
}
});
数据库中没有任何更改
我认为这可能是由于许可问题,因此我添加了以下内容:
defaultACL.setPublicWriteAccess(true)
但仍然没有任何变化,所以我非常简单地写了以下内容:
ParseQuery<ParseObject> query = ParseQuery.getQuery("GameScore");
query.getInBackground("a26WaZg8MJ", new GetCallback<ParseObject>() {
@Override
public void done(ParseObject arg0, ParseException arg1) {
// TODO Auto-generated method stub
if(arg1==null){
arg0.put("playerName", "cheated");
arg0.saveInBackground();
System.out.println("Saved");
}
}
});
ParseQuery query=ParseQuery.getQuery(“游戏分数”);
getInBackground(“a26WaZg8MJ”,新的GetCallback(){
@凌驾
公共无效完成(ParseObject arg0,ParseException arg1){
//TODO自动生成的方法存根
如果(arg1==null){
arg0.put(“playerName”、“欺骗”);
arg0.saveInBackground();
System.out.println(“已保存”);
}
}
});
还是什么都没发生请帮帮我
此外,我还面临删除一行的问题。因此,我尝试了这个方法,但效果并不理想。我最终得到了它。权限是为单个对象设置的,而不是为整个类设置的,这就是为什么我无法写入(更新)或删除,但我在添加ACLpermission代码后创建的权限工作得非常好。1)ParseObject的id是否正确?2) 如果
playerName
是尚未创建的列,则需要在saveInBackground()
完成后刷新浏览器以显示新列。是的,我知道id是正确的,因为我能够正确保存和获取信息,并且获取的id也与实际id匹配。