使用导航组件将自定义类型对象从片段传递到活动

Aminakoy

我想将中的MediaStream对象传递FragmentActivity使用Navigation ComponentMediaStream类属WebRTC因此,我无法触摸它以使它可打包或可序列化以用于传递对象。

以下是片段中的代码:

// Creating a PeerConnection with two callbacks 
// one is triggered when an ICE candidate is received
// the other one is triggered when a MediaStream is received
localPeer = peerConnectionFactory.createPeerConnection(
            rtcConfig,
            object: CustomPeerConnectionObserver("localPeerCreation"){
                override fun onIceCandidate(iceCandidate: IceCandidate?) {
                   // not relevant for this talk 
                }

                override fun onAddStream(mediaStream: MediaStream?) {
                    super.onAddStream(mediaStream)
                    // TODO: create a new Activity and pass media stream to it for displaying
                    StreamsFragmentDirections.actionStreamsFragmentToStreamActivity(mediaStream)
                }
            })!!

就像TODO线所暗示的那样,我的最初目标是将MediaStream对象传递给应该显示流的新Activity。但是我不知道该怎么做。在“导航图编辑器”中,我选择了<inferred type>作为类型,mediastream但没有按预期完成。这里,来自导航图xml布局的相关部分:

<activity
        android:id="@+id/streamActivity"
        android:name="com.john.elia.ui.activities.StreamActivity"
        android:label="StreamActivity" >
        <argument 
            android:name="mediaStream" />
</activity>

但是编译器抱怨说,它期望一个Int但找到了MediaStream。如何传递MediaStream物体?在所有示例中,我发现它们仅显示如何传递基本类型(如String,Int等)。具有自定义类型的对象又如何呢?

阵风使蓝色

您可能无法实现每种类型的对象Parcelable,但是通过遵循现代应用程序体系结构的原理,您不必再这样做,另请参阅应用程序体系结构指南

一般的想法是将您的数据存储在存储库(真相的唯一来源)中,Activitys和Fragments可以通过一些自定义类扩展访问它们ViewModel

所以一旦你获得任何类型的数据(的MediaStream中)Fragment,你应该把它传递到存储库,导航到下一个UI组件,并将它从它自己的帮助存储库中取出数据ViewModel

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将自定义对象arraylist从活动传递到带有实例的片段

如何将自定义对象从活动传递到片段?

如何将自定义数组列表从片段传递到活动

如何使用Dagger2将自定义对象从活动类传递到存储库类?

Android:使用Parcerable将自定义对象的ArrayList从片段发送到活动

将自定义属性传递到Aurelia组件

将自定义对象传递给另一个片段

将自定义对象的ArrayList从子活动传递回父项

Angular2 / 4/6将自定义管道过滤列表从HTML传递到组件

导航组件:将safeArgs从活动传递到片段

使用angular4将自定义模型传递到Firestore时出错,需要对象

使用导航组件对某些片段进行自定义“向上导航”行为

在使用BIND()将自定义组件方法绑定到组件时,是否可以将第一个参数作为组件本身传递?

在活动之间传递自定义对象?

在活动之间传递自定义对象

使用架构组件导航将数据从单个活动传递到起始目标片段

将自定义组件指令绑定到for循环中的对象

带有活动和片段的自定义导航抽屉

Postgres:将自定义类型从Java传递到postgres函数

如何将自定义对象从自定义身份验证提供程序传递到控制器?

将自定义类对象传递给Java中的泛型类型

将自定义动画传递给组件

将自定义对象传递到Spring Boot Controller中

导航组件:如何从活动导航到片段

使用导航组件为每个片段自定义工具栏

将自定义类型传递给 Apollo Mutation

将自定义变量属性传递到foreach语句

将自定义参数从视图传递到form_with

将自定义函数传递给jquery对象