我在更新名为parse.com的云存储网站中的每行值时遇到问题。我只是使用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());
}
}
}}
});
} }
我想更新我输入的产品名称的数量。当我的输入等于云上的名称时,它将更新另一列,该列引用我输入的产品名称。但是由于我的代码,它创建了一个新行,而不是更新现有行..我的代码中缺少什么?有人可以帮帮我吗? :) 提前致谢! :)
答案 0 :(得分:1)
我正在弄清楚同样的问题。我找到了this:
答案是要更新现有对象,您需要先检索它。检索方法在其网站上的文档中给出。
编辑: 完成!这是你如何做到的;首先获取对象,然后通过update方法更新您想要的值。
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找到所需的行。