我正在开发一个带有Parse后端的Android应用程序。该应用程序允许用户从列表视图中选择一行(由解析数据驱动),并转换到详细活动。我想通过使用intent将ParseObject的objectId从选定的listview单元格传递给detail活动。我可以很容易地传递大多数信息,比如名称,但它似乎不会发送objectId,尽管在Parse Dashboard上显示为String。其他人是如何处理的?
发送端:
Intent i = new Intent(getApplicationContext(), EventDetailActivity.class);
ParseObject singleEvent = groupArray.get(position);
String parseID = (String) singleEvent.get("objectId");
i.putExtra("name", parseID);
startActivity(i);
接收方:
Intent i = getIntent();
eventName.setText(i.getStringExtra("name"));
我认为使用Intent
发送ParseObjectId
是不可能的。可以使用Intent
传递字符串ParseObjectId
,然后转到下一个屏幕,再次转换为解析对象,如下所示。
ParseObject object = new ParseObject("ClassName");
object.getObjectId().toString();
String str_obj = object.getObjectId().toString();
Intent i = new Intent();
i.putExtra("objectId", str_obj);
// in next screen
String getObj;
getObj = getIntent().getStringExtra("objectId");
ParseObject oo = new ParseObject("ClassName");
oo.setObjectId(getObj);
否则,它被存储为public
,并且可以在整个应用程序中使用。
您可以使用.getObjectId()
在解析中获取Id,如下所示:
ParseObject gameScore = new ParseObject("GameScore");
String objectId = gameScore.getObjectId();