小编Omk*_*kar的帖子

onDestroy 后重新创建 android Fragment - FragmentManagerState ClassNotFound

我正在使用带有 3 个片段的 viewpager 进行活动。

在开始一个选择图像意图 onactivityResult 被调用后,但
启动活动被销毁并再次创建。

(我已经开启不要保留任何活动,开发者设置。)

现在的问题是在创建活动之后,片段也被再次创建(通过日志观察)

重新创建活动后,这会出现在日志中。

 E/Parcel: Class not found when unmarshalling: androidx.fragment.app.FragmentManagerState
    java.lang.ClassNotFoundException: androidx.fragment.app.FragmentManagerState
Run Code Online (Sandbox Code Playgroud)

onActivity 结果通过Activity>getsViewpager>getsAdapter>getsFragment方法以编程方式转发到片段。

但现在getContext()在片段中返回空值。(这意味着创建了新片段但onactivityResult传递给旧片段?)我期望旧片段应该重新附加或onActivityResult传递给新片段。

我如何区分新/旧活动/片段?如何在重新创建活动后简单地恢复片段?解组错误时找不到 Class 是什么问题。

java android android-fragments android-viewpager android-ondestroy

6
推荐指数
0
解决办法
483
查看次数

在android中以编程方式启动5ghz wifi热点

在android中似乎没有用于管理WIFI热点的公共API。

有一些带有反射和其他的解决方案,但似乎没有一个答案

如何配置 5Ghz WiFi 热点?

我想在两个支持 5GHz 频段的 Android 设备之间使用 5GHz 本地热点网络实现更快的文件传输。

像 ShareIt 这样的 3rd 方应用程序可以在“超快速模式”下启用 5GHz 热点

android bandwidth wifi access-point hotspot

5
推荐指数
0
解决办法
690
查看次数

将 Integer 转换为 Unit 编译成功

为什么该程序在运行时应该因 ClassCastException 失败而打印 kotlin.Unit?

class Animal<T> {
  
}

fun <T> Animal<T>.extension(block: ()-> T){
    print(block())
}

fun main(){
    //(4 as Unit) //Runtime ClassCastException, OK
    //Animal<String>().extension { 2+2 } //Compilation error, ok
    Animal<Unit>().extension { 2+2 } // Why no ClassCastException but prints kotlin.Unit?
}
Run Code Online (Sandbox Code Playgroud)

如果这不是错误,是否可以强制执行约束?

generics kotlin kotlin-extension

3
推荐指数
2
解决办法
70
查看次数

Kotlin 在父级中膨胀通用视图绑定类

目的是声明一个基类

abstract class BaseDialog<T : ViewBinding> : AppCompatDialogFragment() {
       lateinit var binding: T
}
Run Code Online (Sandbox Code Playgroud)

并且所有子类都应该扩展这个父类

class ChildClass: BaseDialog<ChildClassViewBinding>() {
}

Run Code Online (Sandbox Code Playgroud)

然后我想膨胀父类中的绑定并将其保存到绑定属性这似乎超出了我的 kotlin 知识范围

这真的可以做到吗?

generics android kotlin android-viewbinding

2
推荐指数
1
解决办法
3338
查看次数