2013-03-04 37 views
2

我在一個名爲parse.com的雲存儲站點中更新每行更新值的問題。我只是使用parse.com的新手。我已閱讀關於它的文檔並理解它。但是我想要做的是與那裏的例子有點不同。這裏是我的代碼..使用android平臺更新parse.com中每行的值

public void onClick(View arg0) { 
    if (arg0.getId() == R.id.button1) { 
     ParseQuery query = new ParseQuery("inventory"); 
     query.findInBackground(new FindCallback() { 

       public void done(List<ParseObject> test, ParseException e) { 

        ParseObject testObject = new ParseObject("inventory"); 
        if(e==null) { 
         String str=""; 
         String str2=""; 
         for(int x =0;x<test.size();x++){ 
          str = test.get(x).getString("name"); 
          str2 = test.get(x).getString("quantity"); 
          if (!str.equals(et1.getText().toString())){ 
          str = ""; 
          } 
          if(str.equals(et1.getText().toString())) 
          { 


             testObject.put("quantity", et2.getText().toString()); 
             testObject.saveInBackground(); 

           x = test.size(); 
          } 
          else{ 
           tv1.setText("error" + e.getMessage()); 
          } 
       } 


        }} 

     }); 

    } } 

我想更新我輸入的產品名稱的數量。當我的輸入與雲上的名稱相同時,它將更新另一列,這一列是指我輸入的產品名稱。但作爲我的代碼的結果,它創建了一個新的行,而不是更新現有的行..我的代碼中缺少什麼/錯誤?有人可以幫幫我嗎? :) 提前致謝! :)

回答

1

我搞清楚同樣的問題。我發現this

回答說,更新現有的對象,需要先檢索。檢索方法在其網站上的文檔中給出。

編輯: 完成!這是你如何做到的;首先獲取對象,然後通過更新方法更新所需的值。

ParseQuery query = new ParseQuery("UserName"); 
      query.getInBackground("GKIp4pxBrF", new GetCallback() { 
       public void done(final ParseObject object, ParseException e) { 
       if (e == null) { 

        object.put("Name", username); 
        object.saveInBackground(new SaveCallback() { 
        public void done(ParseException e) { 

        object.put("Name", oldname); 

       } 
       }); 

      } 

       else { 
       e.printStackTrace(); 
       } 

     } 
}); 

如果你不知道前手的對象代碼,我建議你通過query找到所需的行。

+0

非常感謝!它真的幫了我很多。找了很久。 – Sharath 2016-01-05 18:51:11