在活动之间传递解析对象

时间:2015-07-12 07:04:24

标签: android object android-intent parse-platform

所以我有这个Intent,它将一个名字的字符串发送给另一个活动。 String的来源来自Parse中的类的对象。

    ParseQuery<ParseObject> query1 = new ParseQuery<ParseObject>("People");
    query1.getInBackground(objectId, new GetCallback<ParseObject>() {
        @Override
        public void done(ParseObject parseObject, ParseException e) {
            if (e == null) {
                //success
                String personName = parseObject.getString("personName");

                Toast.makeText(getApplicationContext(), personName, Toast.LENGTH_SHORT).show();

                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                intent.putExtra("personName", personName);
            } else {
                //there is an error
            }
        }
    });
    //push ends
    Intent Go = new Intent(personActivity.this, SecondActivity.class);
    startActivity(Go);

我已经能够使用上面的代码获取并将该人姓名的Toast发送到另一个活动中。我现在要做的是获取该人的姓名字符串并将其上传以解析为另一个类中的新对象。我尝试过使用这段无效的代码。

这是Second Activity中的代码,用于从主活动中获取Toast和Intent中的String,并将其作为类中的新对象发送给Parse。

    Intent intent = getIntent();
    personName = intent.getStringExtra("personName");


    ParseObject newObject = new ParseObject("AnotherPeople");
    newObject.put("peopleName", personName);
    newObject.saveInBackground();

每当我尝试保存数据时,此代码都会崩溃。有人可以帮帮我吗。

1 个答案:

答案 0 :(得分:0)

问题是你没有将数据发送到第二个活动,在你创建意图的done()方法中没有使用它,即你没有使用{{1}调用SecondActivity }}。

startActivity方法之外,您正在创建另一个意图并调用done()但是这次没有传递名称,因此在第二个活动中名称为空。

简单修复,在done方法中只需调用SecondActivity,以便将数据传递给SecondActivity。

startActivity