Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Intent将RealmQuery对象传递给活动_Java_Android_Android Intent_Android Activity_Realm - Fatal编程技术网

Java 使用Intent将RealmQuery对象传递给活动

Java 使用Intent将RealmQuery对象传递给活动,java,android,android-intent,android-activity,realm,Java,Android,Android Intent,Android Activity,Realm,我有一个创建RealmQuery的Activity,我需要将此查询传递给另一个Activity来执行它。我无法使用意图来完成此操作,因为我试图通过的对象不可包裹。如何实现这一点?来回传递数据活动可以额外实现 您可以简单地执行以下操作 第一个活动 首先将数据获取到变量的数据类型中 String uid = myModel.getUid(); 将数据发送到ChefProfileclass Intent intent = new Intent(MainActivity.this, ChefProfi

我有一个创建
RealmQuery
Activity
,我需要将此查询传递给另一个
Activity
来执行它。我无法使用
意图来完成此操作,因为我试图通过的对象不可包裹。如何实现这一点?

来回传递数据
活动
可以额外实现

您可以简单地执行以下操作

第一个
活动
首先将数据获取到变量的数据类型中

String uid = myModel.getUid();
将数据发送到
ChefProfile
class

Intent intent = new Intent(MainActivity.this, ChefProfile.class);
intent.putExtra(ChefProfile.EXTRA_USER_ID, uid);
startActivity(intent);
现在让我们从Intent获取数据,因为它已经到达调用活动

这是厨师长档案。 首先,我们必须为到达的数据创建一个常量字段

private static final String EXTRA_USER_KEY = "uid";

//Here we obtain the data sent from first activity and extract it into userId
userId = getIntent().getStringExtra(EXTRA_USER_KEY);
if (userId == null) {
    throw new IllegalArgumentException("Must pass EXTRA_POST_KEY");
}

您不能在捆绑包中传递原始变量并在第二个活动中生成查询吗?您可以使用共享对象保存查询并从其他活动访问它。您需要一个在应用程序运行时始终处于活动状态的对象。因此,它可以是应用程序类或某个管理器实例。。或@ErnestZamelczyk所说的…@ErnestZamelczyk我有太多的变量和一个庞大的方法来构建查询,这就是为什么我在单独的活动中这样做,你可以看到我的答案。即使你有很多变量,最好的方法是使用intent extra。@HedShafran这很好,但如果应用程序在稍长的时间后从后台返回,并且你不是在一个像素(4 GB RAM)上,那么它将是一个NPE。我的问题是不可能这样做来传递RealmQuery对象,这会引发错误,因为此对象不可包裹。我想我会像某人提到的那样传递所有变量。无论如何,谢谢。您需要做的是获取
数据库中数据的
id
,使用
intent extra
将该id发送到另一个
活动
,然后从您正在使用的
数据库
再次查询
数据。向另一个
活动
来回发送大数据不是一个好的编程实践。请遵守惯例。