所以我在一个活动中使用parse存储一些基本数据,但是如何从另一个活动中的解析(查询)中检索该数据?有人可以给我一个干净利落的例子吗?
所以在我的主要活动中我有
public String max = "max";
Parse.enableLocalDatastore(this);
private ParseObject rightCardsStore = new ParseObject("RightCardsStore");
rightCardsStore.put("max",max);
rightCardsStore.saveInBackground();
现在,在另一个活动中,“Folder.java”我想查询/检索该数据并使用该字符串。
答案 0 :(得分:1)
正如hitch.united所说,你需要通过执行saveInBackground获取ID并将其发送到其他活动:
rightCardsStore.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
Intent intent = new Intent(YourCurrentActivity.this, YourNewActivity.class);
intent.putExtra("parseObjectId", rightCardsStore.getObjectId());
YourCurrentActivity.this.startActivity(intent);
}
}
});
然后您可以检索其他活动中的数据,并查询解析:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
String id = bundle.getString("parseObjectId");
ParseQuery<ParseObject> query = ParseQuery.getQuery("RightCardsStore");
query.getInBackground(id, new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (e == null) {
// object is the RightCardsStore you just saved
String max = object.getString("max");
}
}
}
}
如果您只需要使用max
作为只读值,则可以通过替换(在第一个活动中)来简化流程
intent.putExtra("parseObjectId", rightCardsStore.getObjectId());
通过
intent.putExtra("max", max);
并将第二项活动替换为:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
String max = bundle.getString("max");
}
答案 1 :(得分:0)
在saveInBackground之后获取对象的ID并将其传递给新活动。然后,您可以使用该ID重新查询以检索该对象。