您如何从Android中的两个不同活动之间的Parse查询?

时间:2015-08-04 22:53:28

标签: java android parse-platform

所以我在一个活动中使用parse存储一些基本数据,但是如何从另一个活动中的解析(查询)中检索该数据?有人可以给我一个干净利落的例子吗?

所以在我的主要活动中我有

 public String max = "max";
 Parse.enableLocalDatastore(this);
 private ParseObject rightCardsStore = new ParseObject("RightCardsStore");
 rightCardsStore.put("max",max);
 rightCardsStore.saveInBackground();

现在,在另一个活动中,“Folder.java”我想查询/检索该数据并使用该字符串。

2 个答案:

答案 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重新查询以检索该对象。