视图和参数在 android kotlin 中返回 null
View and paramater is returning null in android kotlin
我有一个片段,我正在从 activity 向它发送数据(Params,即 url 作为来自 activity 的字符串),但在 onCreateView 中它是(Params)显示 null 并且还查看为 null 我尝试了 bundle 方法,它也不起作用,代码是这样的。
private const val ARG_PARAM1 = "url"
private var Arg2 = ""
var mView: View? = null
class FragmentDisplayImage : Fragment() {
private var param1: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString("url")
Arg2 = param1.toString()
// Toast.makeText(context, param1.toString() , Toast.LENGTH_SHORT).show()
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
super.onCreateView(inflater, container, savedInstanceState);
var a =this.getView()
var image= view?.findViewById<ImageView>(R.id.Fragimage)
Picasso.get().load(Arg2).resize(700, 700).centerCrop().into(image);
return inflater.inflate(R.layout.fragment_display_image, container, false)
}
如何在 oncreateView 中获取 param1 值以及如何解决这个 image/view 给出 null
onCreateView
方法应该return 视图。你在那里得到 null 因为在创建视图之前使用 getView
不能给你视图。如果您将其更改为 requireView
,它不会为空,但会引发异常。
由于您使用的是 findViewById
而不是绑定,因此您必须覆盖 onViewCreated
该方法包含一个参数 view
.
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_display_image, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
var image= view.findViewById<ImageView>(R.id.Fragimage)
Picasso.get().load(Arg2).resize(700, 700).centerCrop().into(image);
}
我有一个片段,我正在从 activity 向它发送数据(Params,即 url 作为来自 activity 的字符串),但在 onCreateView 中它是(Params)显示 null 并且还查看为 null 我尝试了 bundle 方法,它也不起作用,代码是这样的。
private const val ARG_PARAM1 = "url"
private var Arg2 = ""
var mView: View? = null
class FragmentDisplayImage : Fragment() {
private var param1: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString("url")
Arg2 = param1.toString()
// Toast.makeText(context, param1.toString() , Toast.LENGTH_SHORT).show()
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
super.onCreateView(inflater, container, savedInstanceState);
var a =this.getView()
var image= view?.findViewById<ImageView>(R.id.Fragimage)
Picasso.get().load(Arg2).resize(700, 700).centerCrop().into(image);
return inflater.inflate(R.layout.fragment_display_image, container, false)
}
如何在 oncreateView 中获取 param1 值以及如何解决这个 image/view 给出 null
onCreateView
方法应该return 视图。你在那里得到 null 因为在创建视图之前使用 getView
不能给你视图。如果您将其更改为 requireView
,它不会为空,但会引发异常。
由于您使用的是 findViewById
而不是绑定,因此您必须覆盖 onViewCreated
该方法包含一个参数 view
.
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_display_image, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
var image= view.findViewById<ImageView>(R.id.Fragimage)
Picasso.get().load(Arg2).resize(700, 700).centerCrop().into(image);
}