android - 在 Activity 之间传递解析对象

标签 android object android-intent parse-platform

所以我有这个 Intent,它向另一个 Activity 发送一个名称字符串。 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 到另一个 Activity 中。我现在要做的是获取那个人的姓名字符串并将其上传以作为不同类中的新对象进行解析。我试过使用这个不起作用的代码。

这是第二个 Activity 中的代码,我用它从 Toast 中获取 String 并从 Main Activity 中获取 Intent 并将其作为类中的新对象发送给 Parse。

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


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

每当我尝试保存数据时,这段代码总是崩溃。有人可以帮帮我吗。

最佳答案

问题是你没有将数据发送到第二个 Activity ,在 done() 方法中你正在创建一个 Intent 而不是使用它,即你没有调用 SecondActivity 使用 startActivity

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

简单的解决方法是,在 done 方法中调用 startActivity,以便将数据传递给 SecondActivity。

@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);
           startActivity(intent);  //<----Updated here
        } 

关于android - 在 Activity 之间传递解析对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31365279/

相关文章:

android - startActivity(intent) 出错,怎么了?

java - 在 fragment 中获取结果的问题

安卓权限: How can I learn which are dangerous vs normal?

javascript - 在 JavaScript 对象中堆叠过滤器值不起作用

javascript - Node.js - console.log 不显示数组中的项目而是显示 [Object]

android - Intent 服务派生调用显式父类(super class)构造函数

java - 如何在点击选项卡时显示Toast消息?

android - 来自服务器的带有数字标记的谷歌地图

javascript - 将一个 JSON 返回拆分为多个对象

android - 无法在 45 秒内启动 Intent。也许主线程在合理的时间内没有空闲?