如何解决为什么 getter 返回 null?
为什么 getter 为空?我的代码有问题吗?
s = "cake: dessert,kale: vegetable \n carrots: vegetable \n pears: fruit \n peaches: fruit \n peaches: fruit"
lines = s.split("\n")
我想像这样在片段上调用吸气剂:
class Classifyviewmodel (): viewmodel() {
private var mUri : Uri? = null
fun setUri(uri: Uri?){
Log.d("URIviewmodeL",uri.toString())
this.mUri = uri
Log.d("URIviewmodeLSET",this.mUri.toString())
}
fun getUri(): Uri?{
Log.d("URIviewmodeLGET",this.mUri.toString())
return this.mUri
}
}
这是二传手
override fun onCreateView(
inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?
): View {
setHasOptionsMenu(true)
binding = FragmentClassifyBinding.inflate(layoutInflater,container,false)
fragmentClassifyviewmodel = viewmodelProvider(this,viewmodelProvider.NewInstanceFactory())
.get(Classifyviewmodel::class.java)
Log.d("URIWOIIII",fragmentClassifyviewmodel.getUri().toString())
if(fragmentClassifyviewmodel.getUri() != null){
Log.d("URIMASUKKKK",fragmentClassifyviewmodel.getUri().toString())
Glide.with(this)
.load(fragmentClassifyviewmodel.getUri())
.apply(
RequestOptions().placeholder(R.drawable.ic_baseline_loading)
.error(R.drawable.ic_baseline_broken_image)
)
.into(binding.classifyImage)
showImage()
}else{
showNoImage()
}
return binding.root
}
解决方法
假设您先设置值,然后以某种方式调用片段,请更改
fragmentClassifyViewModel = ViewModelProvider(this,ViewModelProvider.NewInstanceFactory()) .get(ClassifyViewModel::class.java)
到
fragmentClassifyViewModel = ViewModelProvider(getActivity(),ViewModelProvider.NewInstanceFactory()) .get(ClassifyViewModel::class.java)
因此您的活动和片段共享相同的值...
还有其他方法可以做到这一点, please check android developers link
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。