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发送到另一个活动
,然后从您正在使用的数据库
再次查询数据。向另一个活动
来回发送大数据不是一个好的编程实践。请遵守惯例。