android - Kotlin - 传递给 Fragment 时 Activity 中的路径显示为 null 然后更改值
问题描述
我有一种情况,我试图将路径从 Activity 传递到 Fragment。下面是我的 MainActivity.kt 文件的片段:
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
val myDir = File(getApplicationContext()?.getExternalFilesDir(null)?.toString() + "/")
// below line displays the path
Toast.makeText(applicationContext, "MainActivity: " + myDir.toString(), Toast.LENGTH_LONG).show()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val bundle = Bundle()
bundle.putString("path", myDir.toString())
// set MainActivityFragment Arguments
val fragobj = MainActivityFragment()
fragobj.setArguments(bundle)
val manager = supportFragmentManager
// Begin the fragment transition using support fragment manager
val transaction = manager.beginTransaction()
// add the fragment on container
transaction.replace(R.id.main_fragment, fragobj)
// Finishing the transition
transaction.commit()
strPackName = getApplicationContext().getPackageName()
}
以及接收信息的 MainActivityFragment.kt 片段。
MainActivityFragment.kt
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val strPath = getArguments()?.getString("path")
val view: View = inflater.inflate(R.layout.fragment_main, container, false)
// initially displays this value as null but then changes to value from MainActivity.kt
Toast.makeText(getActivity()?.getApplicationContext(), "MainActivityFragment: " + strPath, Toast.LENGTH_LONG).show()
}
路径值最初显示为 null,但随后我收到另一条 Toast 消息,指出该值从 MainActivity 更改为原始值。有没有办法防止这种情况,以便我只收到一条显示路径值的 Toast 消息?先感谢您。
解决方案
您在 Activity 中使用了 Toast 2 次,在 Fragment 中使用了 1 次,我认为您只需要在 Fragment 中使用 Toast,这样就可以从 Activity 中移除 Toast。
推荐阅读
- reactjs - 无法在本机反应中使用 Sockjs 添加聊天消息
- powershell - 使用 `Format-Volume` cmdlet 格式化没有驱动器号的 RAM 磁盘
- python - 如何在两个数据框中查找一个值并在一个数据框中的匹配行上添加一个新值
- r - ggplot facet_wrap 不同的主题
- sql - 仅在满足条件时才使用 CHECK 语句
- python-xarray - Xarray - 在不同空间区域上定义的合并集
- python-3.x - 带有导航抽屉的 kivy 屏幕中未显示标签
- java - 是否可以在 VSCode 中进行 JAR 运行配置,如果可以,如何?
- webrtc - WebRTC可以用于IOT的后端数据传输吗?
- r - R Shiny Question --> Dynamicly Sort DataTable (Top/Bottom)