2014-04-05 15 views
0

我正在與android apis一起工作,並按照我所做的完全相同的指示。這是我的代碼解析更新和刪除不工作android

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(); 
       } 
      } 
     }); 
    } 
}); 

數據庫中沒有任何更改。

我認爲這可能是問題由於權限,所以我加入此:

defaultACL.setPublicWriteAccess(真);

,仍然沒有改變,所以我去了很基本的,寫這個:

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"); 
     } 
    } 
}); 

,仍然沒有任何反應,請幫助我。

我還面臨刪除單行的問題。所以我嘗試了這一點,那也不行。

+0

1)「ParseObject」的ID是否正確? 2)如果'playerName'是一個尚未創建的列,則需要在'saveInBackground()'完成後刷新瀏覽器以顯示新列。 – Emmanuel

+0

是的,我知道id是正確的,因爲我能夠正確保存和獲取信息,並且獲取的id也與實際的id匹配。 – user3439988

回答

1

我終於得到了它的權限爲單個對象不是這就是爲什麼我不能夠寫(更新)或刪除,但一個人的,我加入ACLpermission代碼後創建工作得很好,整個類設置。